Skip to content

Commit 19f1b3e

Browse files
author
clockwork-labs-bot
committed
Merge origin/master into shub/table-name-to-accessor
2 parents a7ff6f8 + 83851fe commit 19f1b3e

402 files changed

Lines changed: 14824 additions & 3817 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 79 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,13 @@ members = [
4949
"modules/sdk-test-connect-disconnect",
5050
"modules/sdk-test-procedure",
5151
"modules/sdk-test-view",
52+
"modules/sdk-test-event-table",
5253
"sdks/rust/tests/test-client",
5354
"sdks/rust/tests/test-counter",
5455
"sdks/rust/tests/connect_disconnect_client",
5556
"sdks/rust/tests/procedure-client",
5657
"sdks/rust/tests/view-client",
58+
"sdks/rust/tests/event-table-client",
5759
"tools/ci",
5860
"tools/upgrade-version",
5961
"tools/license-check",
@@ -218,6 +220,7 @@ insta = { version = "1.21.0", features = ["toml", "filters"] }
218220
is-terminal = "0.4"
219221
itertools = "0.12"
220222
itoa = "1"
223+
json5 = "0.4"
221224
jsonwebtoken = { package = "spacetimedb-jsonwebtoken", version = "9.3.0" }
222225
junction = "1"
223226
jwks = { package = "spacetimedb-jwks", version = "0.1.3" }

crates/bindings-cpp/include/spacetimedb/internal/autogen/RawMiscModuleExportV9.g.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
#include <memory>
1313
#include "../autogen_base.h"
1414
#include "spacetimedb/bsatn/bsatn.h"
15+
#include "RawViewDefV9.g.h"
1516
#include "RawColumnDefaultValueV9.g.h"
1617
#include "RawProcedureDefV9.g.h"
17-
#include "RawViewDefV9.g.h"
1818

1919
namespace SpacetimeDB::Internal {
2020

crates/bindings-cpp/include/spacetimedb/internal/autogen/RawModuleDefV9.g.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
#include "../autogen_base.h"
1414
#include "spacetimedb/bsatn/bsatn.h"
1515
#include "RawMiscModuleExportV9.g.h"
16-
#include "RawReducerDefV9.g.h"
16+
#include "RawTypeDefV9.g.h"
1717
#include "RawTableDefV9.g.h"
18-
#include "Typespace.g.h"
1918
#include "RawRowLevelSecurityDefV9.g.h"
20-
#include "RawTypeDefV9.g.h"
19+
#include "RawReducerDefV9.g.h"
20+
#include "Typespace.g.h"
2121

2222
namespace SpacetimeDB::Internal {
2323

crates/bindings-cpp/include/spacetimedb/internal/autogen/RawProcedureDefV9.g.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
#include <memory>
1313
#include "../autogen_base.h"
1414
#include "spacetimedb/bsatn/bsatn.h"
15-
#include "ProductType.g.h"
1615
#include "AlgebraicType.g.h"
16+
#include "ProductType.g.h"
1717

1818
namespace SpacetimeDB::Internal {
1919

crates/bindings-cpp/include/spacetimedb/internal/autogen/RawTableDefV9.g.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
#include <memory>
1313
#include "../autogen_base.h"
1414
#include "spacetimedb/bsatn/bsatn.h"
15-
#include "RawScheduleDefV9.g.h"
1615
#include "TableAccess.g.h"
1716
#include "RawConstraintDefV9.g.h"
17+
#include "RawIndexDefV9.g.h"
1818
#include "TableType.g.h"
1919
#include "RawSequenceDefV9.g.h"
20-
#include "RawIndexDefV9.g.h"
20+
#include "RawScheduleDefV9.g.h"
2121

2222
namespace SpacetimeDB::Internal {
2323

crates/bindings-cpp/tests/client-comparison/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ cd crates/bindings-cpp/tests/client-comparison
6868
```bash
6969
# Rust baseline
7070
cd rust-sdk-test
71-
spacetime generate --lang rust --out-dir . --project-path ../../../modules/sdk-test
71+
spacetime generate --lang rust --out-dir . --module-path ../../../modules/sdk-test
7272

7373
# Rust baseline
7474
./scripts/regenerate_rust_client.sh

crates/bindings-cpp/tests/client-comparison/scripts/regenerate_rust_client.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ fi
7575
# Generate new Rust client
7676
echo "Generating new Rust client from sdk-test module..."
7777
cd "$RUST_DIR"
78-
"$CLI_PATH" generate --lang rust --out-dir . --project-path "$SDK_TEST_DIR" >/dev/null 2>&1
78+
"$CLI_PATH" generate --lang rust --out-dir . --module-path "$SDK_TEST_DIR" >/dev/null 2>&1
7979

8080
if [ $? -eq 0 ]; then
8181
echo ""

crates/bindings-macro/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ mod sym {
6262
symbol!(unique);
6363
symbol!(update);
6464
symbol!(default);
65+
symbol!(event);
6566

6667
symbol!(u8);
6768
symbol!(i8);

crates/bindings-macro/src/table.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ pub(crate) struct TableArgs {
2121
scheduled: Option<ScheduledArg>,
2222
accessor: Ident,
2323
indices: Vec<IndexArg>,
24+
event: Option<Span>,
2425
}
2526

2627
enum TableAccess {
@@ -81,6 +82,7 @@ impl TableArgs {
8182
let mut accessor = None;
8283
let mut name = None;
8384
let mut indices = Vec::new();
85+
let mut event = None;
8486
syn::meta::parser(|meta| {
8587
match_meta!(match meta {
8688
sym::public => {
@@ -106,6 +108,10 @@ impl TableArgs {
106108
check_duplicate(&scheduled, &meta)?;
107109
scheduled = Some(ScheduledArg::parse_meta(meta)?);
108110
}
111+
sym::event => {
112+
check_duplicate(&event, &meta)?;
113+
event = Some(meta.path.span());
114+
}
109115
});
110116
Ok(())
111117
})
@@ -123,6 +129,7 @@ impl TableArgs {
123129
accessor,
124130
indices,
125131
name,
132+
event,
126133
})
127134
}
128135
}
@@ -895,6 +902,18 @@ pub(crate) fn table_impl(mut args: TableArgs, item: &syn::DeriveInput) -> syn::R
895902
);
896903

897904
let table_access = args.access.iter().map(|acc| acc.to_value());
905+
let is_event = args.event.iter().map(|_| {
906+
quote!(
907+
const IS_EVENT: bool = true;
908+
)
909+
});
910+
let can_be_lookup_impl = if args.event.is_none() {
911+
quote! {
912+
impl spacetimedb::query_builder::CanBeLookupTable for #original_struct_ident {}
913+
}
914+
} else {
915+
quote! {}
916+
};
898917
let unique_col_ids = unique_columns.iter().map(|col| col.index);
899918
let primary_col_id = primary_key_column.clone().into_iter().map(|col| col.index);
900919
let sequence_col_ids = sequenced_columns.iter().map(|col| col.index);
@@ -1020,6 +1039,7 @@ pub(crate) fn table_impl(mut args: TableArgs, item: &syn::DeriveInput) -> syn::R
10201039
const TABLE_NAME: &'static str = #table_name;
10211040
// the default value if not specified is Private
10221041
#(const TABLE_ACCESS: spacetimedb::table::TableAccess = #table_access;)*
1042+
#(#is_event)*
10231043
const UNIQUE_COLUMNS: &'static [u16] = &[#(#unique_col_ids),*];
10241044
const INDEXES: &'static [spacetimedb::table::IndexDesc<'static>] = &[#(#index_descs),*];
10251045
#(const PRIMARY_KEY: Option<u16> = Some(#primary_col_id);)*
@@ -1133,6 +1153,8 @@ pub(crate) fn table_impl(mut args: TableArgs, item: &syn::DeriveInput) -> syn::R
11331153
}
11341154
}
11351155

1156+
#can_be_lookup_impl
1157+
11361158
};
11371159

11381160
let table_query_handle_def = quote! {

0 commit comments

Comments
 (0)