diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index c4938dced5..1a6d5ef639 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,7 +1,9 @@
/crates/core/src/db/datastore/traits.rs @cloutiertyler
/rust-toolchain.toml @cloutiertyler
/.github/CODEOWNERS @cloutiertyler
+LICENSE @cloutiertyler
LICENSE.txt @cloutiertyler
+/licenses/ @cloutiertyler
/crates/client-api-messages/src/websocket.rs @centril @gefjon
/crates/cli/src/ @bfops @cloutiertyler @jdetter
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5bad98fda0..62edf2d64a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -254,19 +254,41 @@ jobs:
GIT_REF="${{ github.ref }}"
fi
echo "GIT_REF=${GIT_REF}" >>"$GITHUB_ENV"
+
- name: Checkout sources
uses: actions/checkout@v4
with:
ref: ${{ env.GIT_REF }}
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 18
+
+ - uses: pnpm/action-setup@v4
+ with:
+ run_install: true
+
+ - name: Get pnpm store directory
+ shell: bash
+ working-directory: sdks/typescript
+ run: |
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
+
+ - uses: actions/cache@v4
+ name: Setup pnpm cache
+ with:
+ path: ${{ env.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
+
- uses: dsherret/rust-toolchain-file@v1
+
- name: Check for docs change
run: |
cargo run --features markdown-docs -p spacetimedb-cli > docs/docs/cli-reference.md
- cd docs
- # This is needed because our website doesn't render markdown quite properly.
- # See the README in docs for more details.
- sed -i'' -E 's!^(##) `(.*)`$!\1 \2!' docs/cli-reference.md
- sed -i'' -E 's!^(######) \*\*(.*)\*\*$!\1 \2!' docs/cli-reference.md
+ pnpm format
git status
if git diff --exit-code HEAD; then
echo "No docs changes detected"
@@ -274,3 +296,4 @@ jobs:
echo "It looks like the CLI docs have changed:"
exit 1
fi
+
diff --git a/.github/workflows/csharp-test.yml b/.github/workflows/csharp-test.yml
index d6ebcc1bfb..2017060baa 100644
--- a/.github/workflows/csharp-test.yml
+++ b/.github/workflows/csharp-test.yml
@@ -16,6 +16,7 @@ jobs:
timeout-minutes: 30
steps:
- name: Checkout repository
+ id: checkout-stdb
uses: actions/checkout@v4
# Run cheap .NET tests first. If those fail, no need to run expensive Unity tests.
diff --git a/.github/workflows/docs-validate-nav-build.yml b/.github/workflows/docs-validate-nav-build.yml
index 5232f4c0b4..574870203a 100644
--- a/.github/workflows/docs-validate-nav-build.yml
+++ b/.github/workflows/docs-validate-nav-build.yml
@@ -18,12 +18,35 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
- node-version: '16'
+ node-version: '18'
+
+ - uses: pnpm/action-setup@v4
+ with:
+ run_install: true
+
+ - name: Get pnpm store directory
+ working-directory: sdks/typescript
+ shell: bash
+ run: |
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
+
+ - uses: actions/cache@v4
+ name: Setup pnpm cache
+ with:
+ path: ${{ env.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
- name: Install dependencies
working-directory: docs
run: |
- npm install
+ pnpm install
+
+ - name: Lint
+ working-directory: docs
+ run: |
+ pnpm lint
- name: Backup existing nav.js
working-directory: docs
@@ -33,12 +56,12 @@ jobs:
- name: Build nav.ts
working-directory: docs
run: |
- npm run build
+ pnpm build
- name: Compare generated nav.js with original nav.js
working-directory: docs
run: |
- diff -q docs/nav.js docs/nav.js.original || (echo "Generated nav.js differs from committed version. Run 'npm run build' and commit the updated file." && exit 1)
+ diff -q docs/nav.js docs/nav.js.original || (echo "Generated nav.js differs from committed version. Run 'pnpm build' and commit the updated file." && exit 1)
# We do this after checking that nav.js matches nav.ts, to avoid confusing error messages if an author updates one but not the other.
# If the .ts and .js are in sync, it doesn't matter which one we check against here.
diff --git a/.github/workflows/typescript-lint.yml b/.github/workflows/typescript-lint.yml
index 98d169e9a2..4260e1fcda 100644
--- a/.github/workflows/typescript-lint.yml
+++ b/.github/workflows/typescript-lint.yml
@@ -22,7 +22,6 @@ jobs:
- uses: pnpm/action-setup@v4
with:
- version: 9.7
run_install: true
- name: Get pnpm store directory
diff --git a/.github/workflows/typescript-test.yml b/.github/workflows/typescript-test.yml
index 520adccbe2..c2317abfd3 100644
--- a/.github/workflows/typescript-test.yml
+++ b/.github/workflows/typescript-test.yml
@@ -8,7 +8,7 @@ on:
merge_group:
jobs:
- compile-and-test:
+ build-and-test:
runs-on: ubuntu-latest
steps:
@@ -22,7 +22,6 @@ jobs:
- uses: pnpm/action-setup@v4
with:
- version: 9.7
run_install: true
- name: Get pnpm store directory
@@ -39,9 +38,9 @@ jobs:
restore-keys: |
${{ runner.os }}-pnpm-store-
- - name: Compile
+ - name: Build
working-directory: sdks/typescript
- run: pnpm compile
+ run: pnpm build
- name: Run sdk tests
working-directory: sdks/typescript/packages/sdk
diff --git a/sdks/typescript/.prettierignore b/.prettierignore
similarity index 81%
rename from sdks/typescript/.prettierignore
rename to .prettierignore
index 3592bad75b..a544b13e5b 100644
--- a/sdks/typescript/.prettierignore
+++ b/.prettierignore
@@ -2,4 +2,4 @@ node_modules
pnpm-lock.yaml
dist
target
-/.github
+.github
diff --git a/docs/.prettierrc b/.prettierrc
similarity index 100%
rename from docs/.prettierrc
rename to .prettierrc
diff --git a/Cargo.lock b/Cargo.lock
index e10c07951e..705c0f9b24 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -404,7 +404,7 @@ name = "benchmarks-module"
version = "0.1.0"
dependencies = [
"anyhow",
- "spacetimedb",
+ "spacetimedb 1.4.0",
]
[[package]]
@@ -753,6 +753,15 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+[[package]]
+name = "check-license-symlinks"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "log",
+ "walkdir",
+]
+
[[package]]
name = "chrono"
version = "0.4.41"
@@ -950,7 +959,7 @@ dependencies = [
[[package]]
name = "connect_disconnect_client"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"spacetimedb-sdk",
@@ -2982,7 +2991,7 @@ name = "keynote-benchmarks"
version = "0.1.0"
dependencies = [
"log",
- "spacetimedb",
+ "spacetimedb 1.4.0",
]
[[package]]
@@ -3272,7 +3281,7 @@ version = "0.0.0"
dependencies = [
"anyhow",
"log",
- "spacetimedb",
+ "spacetimedb 1.4.0",
]
[[package]]
@@ -3755,7 +3764,7 @@ name = "perf-test-module"
version = "0.1.0"
dependencies = [
"log",
- "spacetimedb",
+ "spacetimedb 1.4.0",
]
[[package]]
@@ -4214,7 +4223,7 @@ name = "quickstart-chat-module"
version = "0.1.0"
dependencies = [
"log",
- "spacetimedb",
+ "spacetimedb 1.4.0",
]
[[package]]
@@ -4894,7 +4903,7 @@ dependencies = [
"anyhow",
"log",
"paste",
- "spacetimedb",
+ "spacetimedb 1.4.0",
]
[[package]]
@@ -5255,12 +5264,30 @@ name = "spacetime-module"
version = "0.1.0"
dependencies = [
"log",
- "spacetimedb",
+ "spacetimedb 1.4.0",
]
[[package]]
name = "spacetimedb"
version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6cd00b22d3170c92858f448db222a135c6302e336f1729c17e77f634c7e9e849"
+dependencies = [
+ "bytemuck",
+ "derive_more",
+ "getrandom 0.2.16",
+ "log",
+ "rand 0.8.5",
+ "scoped-tls",
+ "spacetimedb-bindings-macro 1.3.0",
+ "spacetimedb-bindings-sys 1.3.0",
+ "spacetimedb-lib 1.3.0",
+ "spacetimedb-primitives 1.3.0",
+]
+
+[[package]]
+name = "spacetimedb"
+version = "1.4.0"
dependencies = [
"bytemuck",
"derive_more",
@@ -5269,28 +5296,28 @@ dependencies = [
"log",
"rand 0.8.5",
"scoped-tls",
- "spacetimedb-bindings-macro",
- "spacetimedb-bindings-sys",
- "spacetimedb-lib",
- "spacetimedb-primitives",
+ "spacetimedb-bindings-macro 1.4.0",
+ "spacetimedb-bindings-sys 1.4.0",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-primitives 1.4.0",
"trybuild",
]
[[package]]
name = "spacetimedb-auth"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"serde",
"serde_json",
"serde_with",
"spacetimedb-jsonwebtoken",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
]
[[package]]
name = "spacetimedb-bench"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"anymap",
@@ -5318,11 +5345,11 @@ dependencies = [
"spacetimedb-data-structures",
"spacetimedb-datastore",
"spacetimedb-execution",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-paths",
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.4.0",
"spacetimedb-query",
- "spacetimedb-sats",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-schema",
"spacetimedb-standalone",
"spacetimedb-table",
@@ -5338,25 +5365,48 @@ dependencies = [
[[package]]
name = "spacetimedb-bindings-macro"
version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87dcccbad947dbecdb49f6c241762a78451344f04c1bdad023a3b1b5942238b2"
dependencies = [
"heck 0.4.1",
"humantime",
"proc-macro2",
"quote",
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.3.0",
+ "syn 2.0.101",
+]
+
+[[package]]
+name = "spacetimedb-bindings-macro"
+version = "1.4.0"
+dependencies = [
+ "heck 0.4.1",
+ "humantime",
+ "proc-macro2",
+ "quote",
+ "spacetimedb-primitives 1.4.0",
"syn 2.0.101",
]
[[package]]
name = "spacetimedb-bindings-sys"
version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "969e77710b67e7db3e86bb4e195ba325f5f288efd1bfd6b1997ca9c389d22b04"
dependencies = [
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.3.0",
+]
+
+[[package]]
+name = "spacetimedb-bindings-sys"
+version = "1.4.0"
+dependencies = [
+ "spacetimedb-primitives 1.4.0",
]
[[package]]
name = "spacetimedb-cli"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"base64 0.21.7",
@@ -5392,9 +5442,9 @@ dependencies = [
"spacetimedb-data-structures",
"spacetimedb-fs-utils",
"spacetimedb-jsonwebtoken",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-paths",
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.4.0",
"spacetimedb-schema",
"syntect",
"tabled",
@@ -5417,7 +5467,7 @@ dependencies = [
[[package]]
name = "spacetimedb-client-api"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"async-stream",
@@ -5453,7 +5503,7 @@ dependencies = [
"spacetimedb-data-structures",
"spacetimedb-datastore",
"spacetimedb-jsonwebtoken",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-paths",
"spacetimedb-schema",
"tempfile",
@@ -5470,7 +5520,7 @@ dependencies = [
[[package]]
name = "spacetimedb-client-api-messages"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"bytes",
"bytestring",
@@ -5484,16 +5534,16 @@ dependencies = [
"serde_json",
"serde_with",
"smallvec",
- "spacetimedb-lib",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"strum",
"thiserror 1.0.69",
]
[[package]]
name = "spacetimedb-codegen"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"convert_case 0.6.0",
@@ -5502,15 +5552,15 @@ dependencies = [
"itertools 0.12.1",
"regex",
"spacetimedb-data-structures",
- "spacetimedb-lib",
- "spacetimedb-primitives",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-primitives 1.4.0",
"spacetimedb-schema",
"spacetimedb-testing",
]
[[package]]
name = "spacetimedb-commitlog"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"async-stream",
"bitflags 2.9.0",
@@ -5530,8 +5580,8 @@ dependencies = [
"spacetimedb-commitlog",
"spacetimedb-fs-utils",
"spacetimedb-paths",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"tempfile",
"thiserror 1.0.69",
"tokio",
@@ -5542,7 +5592,7 @@ dependencies = [
[[package]]
name = "spacetimedb-core"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"arrayvec",
@@ -5619,14 +5669,14 @@ dependencies = [
"spacetimedb-fs-utils",
"spacetimedb-jsonwebtoken",
"spacetimedb-jwks",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-memory-usage",
"spacetimedb-metrics",
"spacetimedb-paths",
"spacetimedb-physical-plan",
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.4.0",
"spacetimedb-query",
- "spacetimedb-sats",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-schema",
"spacetimedb-snapshot",
"spacetimedb-subscription",
@@ -5661,7 +5711,7 @@ dependencies = [
[[package]]
name = "spacetimedb-data-structures"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"ahash 0.8.12",
"crossbeam-queue",
@@ -5675,7 +5725,7 @@ dependencies = [
[[package]]
name = "spacetimedb-datastore"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"bytes",
@@ -5695,11 +5745,11 @@ dependencies = [
"spacetimedb-data-structures",
"spacetimedb-durability",
"spacetimedb-execution",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-metrics",
"spacetimedb-paths",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-schema",
"spacetimedb-snapshot",
"spacetimedb-table",
@@ -5710,46 +5760,46 @@ dependencies = [
[[package]]
name = "spacetimedb-durability"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"itertools 0.12.1",
"log",
"spacetimedb-commitlog",
"spacetimedb-paths",
- "spacetimedb-sats",
+ "spacetimedb-sats 1.4.0",
"tokio",
"tracing",
]
[[package]]
name = "spacetimedb-execution"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"itertools 0.12.1",
"spacetimedb-expr",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-physical-plan",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-sql-parser",
"spacetimedb-table",
]
[[package]]
name = "spacetimedb-expr"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"bigdecimal",
"derive_more",
"ethnum",
"pretty_assertions",
- "spacetimedb",
- "spacetimedb-lib",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb 1.4.0",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-schema",
"spacetimedb-sql-parser",
"thiserror 1.0.69",
@@ -5757,7 +5807,7 @@ dependencies = [
[[package]]
name = "spacetimedb-fs-utils"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"hex",
@@ -5800,6 +5850,26 @@ dependencies = [
[[package]]
name = "spacetimedb-lib"
version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9b8d04af6da14e3b7cc79b4b88c1c309c994eeba6a97f298fd0cdc7f897209"
+dependencies = [
+ "anyhow",
+ "bitflags 2.9.0",
+ "blake3",
+ "chrono",
+ "derive_more",
+ "enum-as-inner",
+ "hex",
+ "itertools 0.12.1",
+ "spacetimedb-bindings-macro 1.3.0",
+ "spacetimedb-primitives 1.3.0",
+ "spacetimedb-sats 1.3.0",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "spacetimedb-lib"
+version = "1.4.0"
dependencies = [
"anyhow",
"bitflags 2.9.0",
@@ -5817,17 +5887,17 @@ dependencies = [
"ron",
"serde",
"serde_json",
- "spacetimedb-bindings-macro",
+ "spacetimedb-bindings-macro 1.4.0",
"spacetimedb-memory-usage",
"spacetimedb-metrics",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"thiserror 1.0.69",
]
[[package]]
name = "spacetimedb-memory-usage"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"decorum",
"ethnum",
@@ -5837,7 +5907,7 @@ dependencies = [
[[package]]
name = "spacetimedb-metrics"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"arrayvec",
"itertools 0.12.1",
@@ -5847,7 +5917,7 @@ dependencies = [
[[package]]
name = "spacetimedb-paths"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"chrono",
@@ -5863,15 +5933,15 @@ dependencies = [
[[package]]
name = "spacetimedb-physical-plan"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"derive_more",
"either",
"pretty_assertions",
"spacetimedb-expr",
- "spacetimedb-lib",
- "spacetimedb-primitives",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-primitives 1.4.0",
"spacetimedb-schema",
"spacetimedb-sql-parser",
"spacetimedb-table",
@@ -5880,6 +5950,18 @@ dependencies = [
[[package]]
name = "spacetimedb-primitives"
version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0181dc495c66138755705e573f0e0a9a7024660f207ebd1e35d0a1f839813e84"
+dependencies = [
+ "bitflags 2.9.0",
+ "either",
+ "itertools 0.12.1",
+ "nohash-hasher",
+]
+
+[[package]]
+name = "spacetimedb-primitives"
+version = "1.4.0"
dependencies = [
"bitflags 2.9.0",
"either",
@@ -5891,7 +5973,7 @@ dependencies = [
[[package]]
name = "spacetimedb-query"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"itertools 0.12.1",
@@ -5899,9 +5981,9 @@ dependencies = [
"spacetimedb-client-api-messages",
"spacetimedb-execution",
"spacetimedb-expr",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-physical-plan",
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.4.0",
"spacetimedb-sql-parser",
"spacetimedb-table",
]
@@ -5909,6 +5991,32 @@ dependencies = [
[[package]]
name = "spacetimedb-sats"
version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e9700ea5d62401c05633ce86d369dbc4a73ec978ac7e347ab8563626ad01fbc"
+dependencies = [
+ "anyhow",
+ "arrayvec",
+ "bitflags 2.9.0",
+ "bytemuck",
+ "bytes",
+ "chrono",
+ "decorum",
+ "derive_more",
+ "enum-as-inner",
+ "ethnum",
+ "hex",
+ "itertools 0.12.1",
+ "second-stack",
+ "sha3",
+ "smallvec",
+ "spacetimedb-bindings-macro 1.3.0",
+ "spacetimedb-primitives 1.3.0",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "spacetimedb-sats"
+version = "1.4.0"
dependencies = [
"ahash 0.8.12",
"anyhow",
@@ -5932,16 +6040,16 @@ dependencies = [
"serde",
"sha3",
"smallvec",
- "spacetimedb-bindings-macro",
+ "spacetimedb-bindings-macro 1.4.0",
"spacetimedb-memory-usage",
"spacetimedb-metrics",
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.4.0",
"thiserror 1.0.69",
]
[[package]]
name = "spacetimedb-schema"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"derive_more",
@@ -5958,9 +6066,9 @@ dependencies = [
"serial_test",
"smallvec",
"spacetimedb-data-structures",
- "spacetimedb-lib",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-sql-parser",
"spacetimedb-testing",
"termcolor",
@@ -5971,7 +6079,7 @@ dependencies = [
[[package]]
name = "spacetimedb-sdk"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anymap",
"base64 0.21.7",
@@ -5990,9 +6098,9 @@ dependencies = [
"rand 0.9.1",
"spacetimedb-client-api-messages",
"spacetimedb-data-structures",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-metrics",
- "spacetimedb-sats",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-testing",
"thiserror 1.0.69",
"tokio",
@@ -6001,7 +6109,7 @@ dependencies = [
[[package]]
name = "spacetimedb-snapshot"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"blake3",
@@ -6018,10 +6126,10 @@ dependencies = [
"spacetimedb-datastore",
"spacetimedb-durability",
"spacetimedb-fs-utils",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-paths",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-schema",
"spacetimedb-table",
"tempfile",
@@ -6034,17 +6142,17 @@ dependencies = [
[[package]]
name = "spacetimedb-sql-parser"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"derive_more",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"sqlparser",
"thiserror 1.0.69",
]
[[package]]
name = "spacetimedb-standalone"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"async-trait",
@@ -6068,7 +6176,7 @@ dependencies = [
"spacetimedb-client-api-messages",
"spacetimedb-core",
"spacetimedb-datastore",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-paths",
"spacetimedb-table",
"tempfile",
@@ -6083,20 +6191,20 @@ dependencies = [
[[package]]
name = "spacetimedb-subscription"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"spacetimedb-execution",
"spacetimedb-expr",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-physical-plan",
- "spacetimedb-primitives",
+ "spacetimedb-primitives 1.4.0",
"spacetimedb-query",
]
[[package]]
name = "spacetimedb-table"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"ahash 0.8.12",
"blake3",
@@ -6112,17 +6220,17 @@ dependencies = [
"rand 0.9.1",
"smallvec",
"spacetimedb-data-structures",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-memory-usage",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-schema",
"thiserror 1.0.69",
]
[[package]]
name = "spacetimedb-testing"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"clap 4.5.37",
@@ -6138,7 +6246,7 @@ dependencies = [
"spacetimedb-client-api",
"spacetimedb-core",
"spacetimedb-data-structures",
- "spacetimedb-lib",
+ "spacetimedb-lib 1.4.0",
"spacetimedb-paths",
"spacetimedb-schema",
"spacetimedb-standalone",
@@ -6149,7 +6257,7 @@ dependencies = [
[[package]]
name = "spacetimedb-update"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"bytes",
@@ -6174,7 +6282,7 @@ dependencies = [
[[package]]
name = "spacetimedb-vm"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"arrayvec",
@@ -6184,9 +6292,9 @@ dependencies = [
"smallvec",
"spacetimedb-data-structures",
"spacetimedb-execution",
- "spacetimedb-lib",
- "spacetimedb-primitives",
- "spacetimedb-sats",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-primitives 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-schema",
"spacetimedb-table",
"tempfile",
@@ -6265,7 +6373,7 @@ dependencies = [
[[package]]
name = "sqltest"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"async-trait",
@@ -6284,8 +6392,8 @@ dependencies = [
"rust_decimal",
"spacetimedb-core",
"spacetimedb-datastore",
- "spacetimedb-lib",
- "spacetimedb-sats",
+ "spacetimedb-lib 1.4.0",
+ "spacetimedb-sats 1.4.0",
"spacetimedb-vm",
"sqllogictest",
"sqllogictest-engines",
@@ -6603,7 +6711,7 @@ dependencies = [
[[package]]
name = "test-client"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"env_logger 0.10.2",
@@ -6615,7 +6723,7 @@ dependencies = [
[[package]]
name = "test-counter"
-version = "1.3.0"
+version = "1.4.0"
dependencies = [
"anyhow",
"spacetimedb-data-structures",
@@ -7190,6 +7298,15 @@ version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
+[[package]]
+name = "typescript-test-app"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "log",
+ "spacetimedb 1.3.0",
+]
+
[[package]]
name = "unarray"
version = "0.1.4"
diff --git a/Cargo.toml b/Cargo.toml
index e438cccf83..e6cbb963f0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -44,7 +44,9 @@ members = [
"sdks/rust/tests/test-client",
"sdks/rust/tests/test-counter",
"sdks/rust/tests/connect_disconnect_client",
- "tools/upgrade-version", "crates/codegen",
+ "tools/upgrade-version",
+ "tools/license-check",
+ "sdks/typescript/packages/test-app/server",
]
default-members = ["crates/cli", "crates/standalone", "crates/update"]
# cargo feature graph resolver. v3 is default in edition2024 but workspace
@@ -88,43 +90,43 @@ inherits = "release"
debug = true
[workspace.package]
-version = "1.3.0"
+version = "1.4.0"
edition = "2021"
# update rust-toolchain.toml too!
rust-version = "1.88.0"
[workspace.dependencies]
-spacetimedb = { path = "crates/bindings", version = "1.3.0" }
-spacetimedb-auth = { path = "crates/auth", version = "1.3.0" }
-spacetimedb-bindings-macro = { path = "crates/bindings-macro", version = "1.3.0" }
-spacetimedb-bindings-sys = { path = "crates/bindings-sys", version = "1.3.0" }
-spacetimedb-cli = { path = "crates/cli", version = "1.3.0" }
-spacetimedb-client-api = { path = "crates/client-api", version = "1.3.0" }
-spacetimedb-client-api-messages = { path = "crates/client-api-messages", version = "1.3.0" }
-spacetimedb-codegen = { path = "crates/codegen", version = "1.3.0" }
-spacetimedb-commitlog = { path = "crates/commitlog", version = "1.3.0" }
-spacetimedb-core = { path = "crates/core", version = "1.3.0" }
-spacetimedb-data-structures = { path = "crates/data-structures", version = "1.3.0" }
-spacetimedb-datastore = { path = "crates/datastore", version = "1.3.0" }
-spacetimedb-durability = { path = "crates/durability", version = "1.3.0" }
-spacetimedb-execution = { path = "crates/execution", version = "1.3.0" }
-spacetimedb-expr = { path = "crates/expr", version = "1.3.0" }
-spacetimedb-lib = { path = "crates/lib", default-features = false, version = "1.3.0" }
-spacetimedb-memory-usage = { path = "crates/memory-usage", version = "1.3.0", default-features = false }
-spacetimedb-metrics = { path = "crates/metrics", version = "1.3.0" }
-spacetimedb-paths = { path = "crates/paths", version = "1.3.0" }
-spacetimedb-physical-plan = { path = "crates/physical-plan", version = "1.3.0" }
-spacetimedb-primitives = { path = "crates/primitives", version = "1.3.0" }
-spacetimedb-query = { path = "crates/query", version = "1.3.0" }
-spacetimedb-sats = { path = "crates/sats", version = "1.3.0" }
-spacetimedb-schema = { path = "crates/schema", version = "1.3.0" }
-spacetimedb-standalone = { path = "crates/standalone", version = "1.3.0" }
-spacetimedb-sql-parser = { path = "crates/sql-parser", version = "1.3.0" }
-spacetimedb-table = { path = "crates/table", version = "1.3.0" }
-spacetimedb-vm = { path = "crates/vm", version = "1.3.0" }
-spacetimedb-fs-utils = { path = "crates/fs-utils", version = "1.3.0" }
-spacetimedb-snapshot = { path = "crates/snapshot", version = "1.3.0" }
-spacetimedb-subscription = { path = "crates/subscription", version = "1.3.0" }
+spacetimedb = { path = "crates/bindings", version = "1.4.0" }
+spacetimedb-auth = { path = "crates/auth", version = "1.4.0" }
+spacetimedb-bindings-macro = { path = "crates/bindings-macro", version = "1.4.0" }
+spacetimedb-bindings-sys = { path = "crates/bindings-sys", version = "1.4.0" }
+spacetimedb-cli = { path = "crates/cli", version = "1.4.0" }
+spacetimedb-client-api = { path = "crates/client-api", version = "1.4.0" }
+spacetimedb-client-api-messages = { path = "crates/client-api-messages", version = "1.4.0" }
+spacetimedb-codegen = { path = "crates/codegen", version = "1.4.0" }
+spacetimedb-commitlog = { path = "crates/commitlog", version = "1.4.0" }
+spacetimedb-core = { path = "crates/core", version = "1.4.0" }
+spacetimedb-data-structures = { path = "crates/data-structures", version = "1.4.0" }
+spacetimedb-datastore = { path = "crates/datastore", version = "1.4.0" }
+spacetimedb-durability = { path = "crates/durability", version = "1.4.0" }
+spacetimedb-execution = { path = "crates/execution", version = "1.4.0" }
+spacetimedb-expr = { path = "crates/expr", version = "1.4.0" }
+spacetimedb-lib = { path = "crates/lib", default-features = false, version = "1.4.0" }
+spacetimedb-memory-usage = { path = "crates/memory-usage", version = "1.4.0", default-features = false }
+spacetimedb-metrics = { path = "crates/metrics", version = "1.4.0" }
+spacetimedb-paths = { path = "crates/paths", version = "1.4.0" }
+spacetimedb-physical-plan = { path = "crates/physical-plan", version = "1.4.0" }
+spacetimedb-primitives = { path = "crates/primitives", version = "1.4.0" }
+spacetimedb-query = { path = "crates/query", version = "1.4.0" }
+spacetimedb-sats = { path = "crates/sats", version = "1.4.0" }
+spacetimedb-schema = { path = "crates/schema", version = "1.4.0" }
+spacetimedb-standalone = { path = "crates/standalone", version = "1.4.0" }
+spacetimedb-sql-parser = { path = "crates/sql-parser", version = "1.4.0" }
+spacetimedb-table = { path = "crates/table", version = "1.4.0" }
+spacetimedb-vm = { path = "crates/vm", version = "1.4.0" }
+spacetimedb-fs-utils = { path = "crates/fs-utils", version = "1.4.0" }
+spacetimedb-snapshot = { path = "crates/snapshot", version = "1.4.0" }
+spacetimedb-subscription = { path = "crates/subscription", version = "1.4.0" }
# Prevent `ahash` from pulling in `getrandom` by disabling default features.
# Modules use `getrandom02` and we need to prevent an incompatible version
diff --git a/LICENSE.txt b/LICENSE.txt
index cab9895df8..a95276a044 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -5,7 +5,7 @@ Business Source License 1.1
Parameters
Licensor: Clockwork Laboratories, Inc.
-Licensed Work: SpacetimeDB 1.3.0
+Licensed Work: SpacetimeDB 1.4.0
The Licensed Work is
(c) 2023 Clockwork Laboratories, Inc.
@@ -21,7 +21,7 @@ Additional Use Grant: You may make use of the Licensed Work provided your
Licensed Work by creating tables whose schemas are
controlled by such third parties.
-Change Date: 2030-07-30
+Change Date: 2030-09-03
Change License: GNU Affero General Public License v3.0 with a linking
exception
diff --git a/crates/bindings-csharp/BSATN.Codegen/Type.cs b/crates/bindings-csharp/BSATN.Codegen/Type.cs
index 53f737e369..4bfbf45ec7 100644
--- a/crates/bindings-csharp/BSATN.Codegen/Type.cs
+++ b/crates/bindings-csharp/BSATN.Codegen/Type.cs
@@ -1,5 +1,14 @@
namespace SpacetimeDB.Codegen;
+// Generate code to implement serialization to the BSATN format (https://spacetimedb.com/docs/bsatn).
+// C# doesn't support static methods in interfaces, so instead we declare a zero-sized `struct` type that implements
+// the serialization interface (IReadWrite) for us.
+//
+// See BSATN.Runtime for the support code referenced by code generation,
+// and see Codegen.Tests/fixtures/*/snapshots for examples of generated code.
+// Also, if you set true in a csproj,
+// you can find the generated code in obj/Debug/*/generated/SpacetimeDB.BSATN.Codegen.
+
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
@@ -27,6 +36,14 @@ using static Utils;
/// The name of the BSATN struct for the type.
public abstract record TypeUse(string Name, string BSATNName)
{
+ internal static string BSATN_FIELD_SUFFIX = "RW";
+
+ ///
+ /// The name of the static field containing an IReadWrite in the IReadWrite struct associated with this type.
+ /// We make sure this is different from the field name so that collisions cannot occur.
+ ///
+ public static string BsatnFieldSuffix => $"{BSATN_FIELD_SUFFIX}";
+
///
/// Parse a type use for a member.
///
@@ -330,14 +347,20 @@ public record MemberDeclaration(
var visStr = SyntaxFacts.GetText(visibility);
return string.Join(
"\n ",
- members.Select(m => $"{visStr} static readonly {m.Type.BSATNName} {m.Name} = new();")
+ members.Select(m =>
+ $"{visStr} static readonly {m.Type.BSATNName} {m.Name}{TypeUse.BsatnFieldSuffix} = new();"
+ )
);
}
public static string GenerateDefs(IEnumerable members) =>
string.Join(
",\n ",
- members.Select(m => $"new(nameof({m.Name}), {m.Name}.GetAlgebraicType(registrar))")
+ // we can't use nameof(m.Type.BsatnFieldName) because the bsatn field name differs from the logical name
+ // assigned in the type.
+ members.Select(m =>
+ $"new(\"{m.Name}\", {m.Name}{TypeUse.BsatnFieldSuffix}.GetAlgebraicType(registrar))"
+ )
);
}
@@ -450,8 +473,6 @@ public abstract record BaseTypeDeclaration
var extensions = new Scope.Extensions(Scope, FullName);
var bsatnDecls = Members.Cast();
- var fieldNames = bsatnDecls.Select(m => m.Name);
- var fieldNamesAndIds = fieldNames.Select((name, i) => (name, i));
extensions.BaseTypes.Add($"System.IEquatable<{ShortName}>");
@@ -480,8 +501,8 @@ public abstract record BaseTypeDeclaration
return reader.ReadByte() switch {
{{string.Join(
"\n ",
- fieldNames.Select((name, i) =>
- $"{i} => new {name}({name}.Read(reader)),"
+ bsatnDecls.Select((m, i) =>
+ $"{i} => new {m.Name}({m.Name}{TypeUse.BsatnFieldSuffix}.Read(reader)),"
)
)}}
_ => throw new System.InvalidOperationException("Invalid tag value, this state should be unreachable.")
@@ -492,12 +513,12 @@ public abstract record BaseTypeDeclaration
switch (value) {
{{string.Join(
"\n",
- fieldNames.Select((name, i) => $"""
- case {name}(var inner):
- writer.Write((byte){i});
- {name}.Write(writer, inner);
- break;
- """))}}
+ bsatnDecls.Select((m, i) => $"""
+ case {m.Name}(var inner):
+ writer.Write((byte){i});
+ {m.Name}{TypeUse.BsatnFieldSuffix}.Write(writer, inner);
+ break;
+ """))}}
}
""";
@@ -530,14 +551,14 @@ public abstract record BaseTypeDeclaration
public void ReadFields(System.IO.BinaryReader reader) {
{{string.Join(
"\n",
- fieldNames.Select(name => $" {name} = BSATN.{name}.Read(reader);")
+ bsatnDecls.Select(m => $" {m.Name} = BSATN.{m.Name}{TypeUse.BsatnFieldSuffix}.Read(reader);")
)}}
}
public void WriteFields(System.IO.BinaryWriter writer) {
{{string.Join(
"\n",
- fieldNames.Select(name => $" BSATN.{name}.Write(writer, {name});")
+ bsatnDecls.Select(m => $" BSATN.{m.Name}{TypeUse.BsatnFieldSuffix}.Write(writer, {m.Name});")
)}}
}
@@ -557,7 +578,7 @@ public abstract record BaseTypeDeclaration
public override string ToString() =>
$"{{ShortName}} {{start}} {{string.Join(
", ",
- fieldNames.Select(name => $$"""{{name}} = {SpacetimeDB.BSATN.StringUtil.GenericToString({{name}})}""")
+ bsatnDecls.Select(m => $$"""{{m.Name}} = {SpacetimeDB.BSATN.StringUtil.GenericToString({{m.Name}})}""")
)}} {{end}}";
"""
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomClass.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomClass.verified.cs
index 512bf49c7c..c3ddd0f9ac 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomClass.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomClass.verified.cs
@@ -6,14 +6,14 @@ partial struct CustomClass : System.IEquatable, SpacetimeDB.BSATN.I
{
public void ReadFields(System.IO.BinaryReader reader)
{
- IntField = BSATN.IntField.Read(reader);
- StringField = BSATN.StringField.Read(reader);
+ IntField = BSATN.IntFieldRW.Read(reader);
+ StringField = BSATN.StringFieldRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.IntField.Write(writer, IntField);
- BSATN.StringField.Write(writer, StringField);
+ BSATN.IntFieldRW.Write(writer, IntField);
+ BSATN.StringFieldRW.Write(writer, StringField);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -26,8 +26,8 @@ partial struct CustomClass : System.IEquatable, SpacetimeDB.BSATN.I
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.I32 IntField = new();
- internal static readonly SpacetimeDB.BSATN.String StringField = new();
+ internal static readonly SpacetimeDB.BSATN.I32 IntFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.String StringFieldRW = new();
public CustomClass Read(System.IO.BinaryReader reader)
{
@@ -47,8 +47,8 @@ partial struct CustomClass : System.IEquatable, SpacetimeDB.BSATN.I
registrar.RegisterType(_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(IntField), IntField.GetAlgebraicType(registrar)),
- new(nameof(StringField), StringField.GetAlgebraicType(registrar))
+ new("IntField", IntFieldRW.GetAlgebraicType(registrar)),
+ new("StringField", StringFieldRW.GetAlgebraicType(registrar))
}
));
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomStruct.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomStruct.verified.cs
index ec179e3994..4730a9cb55 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomStruct.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomStruct.verified.cs
@@ -8,14 +8,14 @@ partial struct CustomStruct
{
public void ReadFields(System.IO.BinaryReader reader)
{
- IntField = BSATN.IntField.Read(reader);
- StringField = BSATN.StringField.Read(reader);
+ IntField = BSATN.IntFieldRW.Read(reader);
+ StringField = BSATN.StringFieldRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.IntField.Write(writer, IntField);
- BSATN.StringField.Write(writer, StringField);
+ BSATN.IntFieldRW.Write(writer, IntField);
+ BSATN.StringFieldRW.Write(writer, StringField);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -28,8 +28,8 @@ partial struct CustomStruct
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.I32 IntField = new();
- internal static readonly SpacetimeDB.BSATN.String StringField = new();
+ internal static readonly SpacetimeDB.BSATN.I32 IntFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.String StringFieldRW = new();
public CustomStruct Read(System.IO.BinaryReader reader)
{
@@ -49,8 +49,8 @@ partial struct CustomStruct
registrar.RegisterType(_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(IntField), IntField.GetAlgebraicType(registrar)),
- new(nameof(StringField), StringField.GetAlgebraicType(registrar))
+ new("IntField", IntFieldRW.GetAlgebraicType(registrar)),
+ new("StringField", StringFieldRW.GetAlgebraicType(registrar))
}
));
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomTaggedEnum.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomTaggedEnum.verified.cs
index 91843001a9..0f6a93c3c4 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomTaggedEnum.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomTaggedEnum.verified.cs
@@ -18,15 +18,15 @@ partial record CustomTaggedEnum : System.IEquatable
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.I32 IntVariant = new();
- internal static readonly SpacetimeDB.BSATN.String StringVariant = new();
+ internal static readonly SpacetimeDB.BSATN.I32 IntVariantRW = new();
+ internal static readonly SpacetimeDB.BSATN.String StringVariantRW = new();
public CustomTaggedEnum Read(System.IO.BinaryReader reader)
{
return reader.ReadByte() switch
{
- 0 => new IntVariant(IntVariant.Read(reader)),
- 1 => new StringVariant(StringVariant.Read(reader)),
+ 0 => new IntVariant(IntVariantRW.Read(reader)),
+ 1 => new StringVariant(StringVariantRW.Read(reader)),
_
=> throw new System.InvalidOperationException(
"Invalid tag value, this state should be unreachable."
@@ -40,11 +40,11 @@ partial record CustomTaggedEnum : System.IEquatable
{
case IntVariant(var inner):
writer.Write((byte)0);
- IntVariant.Write(writer, inner);
+ IntVariantRW.Write(writer, inner);
break;
case StringVariant(var inner):
writer.Write((byte)1);
- StringVariant.Write(writer, inner);
+ StringVariantRW.Write(writer, inner);
break;
}
}
@@ -55,8 +55,8 @@ partial record CustomTaggedEnum : System.IEquatable
registrar.RegisterType(_ => new SpacetimeDB.BSATN.AlgebraicType.Sum(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(IntVariant), IntVariant.GetAlgebraicType(registrar)),
- new(nameof(StringVariant), StringVariant.GetAlgebraicType(registrar))
+ new("IntVariant", IntVariantRW.GetAlgebraicType(registrar)),
+ new("StringVariant", StringVariantRW.GetAlgebraicType(registrar))
}
));
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#PublicTable.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#PublicTable.verified.cs
index e2853b9bf1..00222bd019 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#PublicTable.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#PublicTable.verified.cs
@@ -6,60 +6,60 @@ partial struct PublicTable : System.IEquatable, SpacetimeDB.BSATN.I
{
public void ReadFields(System.IO.BinaryReader reader)
{
- ByteField = BSATN.ByteField.Read(reader);
- UshortField = BSATN.UshortField.Read(reader);
- UintField = BSATN.UintField.Read(reader);
- UlongField = BSATN.UlongField.Read(reader);
- U128Field = BSATN.U128Field.Read(reader);
- U256Field = BSATN.U256Field.Read(reader);
- SbyteField = BSATN.SbyteField.Read(reader);
- ShortField = BSATN.ShortField.Read(reader);
- IntField = BSATN.IntField.Read(reader);
- LongField = BSATN.LongField.Read(reader);
- I128Field = BSATN.I128Field.Read(reader);
- I256Field = BSATN.I256Field.Read(reader);
- BoolField = BSATN.BoolField.Read(reader);
- FloatField = BSATN.FloatField.Read(reader);
- DoubleField = BSATN.DoubleField.Read(reader);
- StringField = BSATN.StringField.Read(reader);
- IdentityField = BSATN.IdentityField.Read(reader);
- ConnectionIdField = BSATN.ConnectionIdField.Read(reader);
- CustomStructField = BSATN.CustomStructField.Read(reader);
- CustomClassField = BSATN.CustomClassField.Read(reader);
- CustomEnumField = BSATN.CustomEnumField.Read(reader);
- CustomTaggedEnumField = BSATN.CustomTaggedEnumField.Read(reader);
- ListField = BSATN.ListField.Read(reader);
- NullableValueField = BSATN.NullableValueField.Read(reader);
- NullableReferenceField = BSATN.NullableReferenceField.Read(reader);
+ ByteField = BSATN.ByteFieldRW.Read(reader);
+ UshortField = BSATN.UshortFieldRW.Read(reader);
+ UintField = BSATN.UintFieldRW.Read(reader);
+ UlongField = BSATN.UlongFieldRW.Read(reader);
+ U128Field = BSATN.U128FieldRW.Read(reader);
+ U256Field = BSATN.U256FieldRW.Read(reader);
+ SbyteField = BSATN.SbyteFieldRW.Read(reader);
+ ShortField = BSATN.ShortFieldRW.Read(reader);
+ IntField = BSATN.IntFieldRW.Read(reader);
+ LongField = BSATN.LongFieldRW.Read(reader);
+ I128Field = BSATN.I128FieldRW.Read(reader);
+ I256Field = BSATN.I256FieldRW.Read(reader);
+ BoolField = BSATN.BoolFieldRW.Read(reader);
+ FloatField = BSATN.FloatFieldRW.Read(reader);
+ DoubleField = BSATN.DoubleFieldRW.Read(reader);
+ StringField = BSATN.StringFieldRW.Read(reader);
+ IdentityField = BSATN.IdentityFieldRW.Read(reader);
+ ConnectionIdField = BSATN.ConnectionIdFieldRW.Read(reader);
+ CustomStructField = BSATN.CustomStructFieldRW.Read(reader);
+ CustomClassField = BSATN.CustomClassFieldRW.Read(reader);
+ CustomEnumField = BSATN.CustomEnumFieldRW.Read(reader);
+ CustomTaggedEnumField = BSATN.CustomTaggedEnumFieldRW.Read(reader);
+ ListField = BSATN.ListFieldRW.Read(reader);
+ NullableValueField = BSATN.NullableValueFieldRW.Read(reader);
+ NullableReferenceField = BSATN.NullableReferenceFieldRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.ByteField.Write(writer, ByteField);
- BSATN.UshortField.Write(writer, UshortField);
- BSATN.UintField.Write(writer, UintField);
- BSATN.UlongField.Write(writer, UlongField);
- BSATN.U128Field.Write(writer, U128Field);
- BSATN.U256Field.Write(writer, U256Field);
- BSATN.SbyteField.Write(writer, SbyteField);
- BSATN.ShortField.Write(writer, ShortField);
- BSATN.IntField.Write(writer, IntField);
- BSATN.LongField.Write(writer, LongField);
- BSATN.I128Field.Write(writer, I128Field);
- BSATN.I256Field.Write(writer, I256Field);
- BSATN.BoolField.Write(writer, BoolField);
- BSATN.FloatField.Write(writer, FloatField);
- BSATN.DoubleField.Write(writer, DoubleField);
- BSATN.StringField.Write(writer, StringField);
- BSATN.IdentityField.Write(writer, IdentityField);
- BSATN.ConnectionIdField.Write(writer, ConnectionIdField);
- BSATN.CustomStructField.Write(writer, CustomStructField);
- BSATN.CustomClassField.Write(writer, CustomClassField);
- BSATN.CustomEnumField.Write(writer, CustomEnumField);
- BSATN.CustomTaggedEnumField.Write(writer, CustomTaggedEnumField);
- BSATN.ListField.Write(writer, ListField);
- BSATN.NullableValueField.Write(writer, NullableValueField);
- BSATN.NullableReferenceField.Write(writer, NullableReferenceField);
+ BSATN.ByteFieldRW.Write(writer, ByteField);
+ BSATN.UshortFieldRW.Write(writer, UshortField);
+ BSATN.UintFieldRW.Write(writer, UintField);
+ BSATN.UlongFieldRW.Write(writer, UlongField);
+ BSATN.U128FieldRW.Write(writer, U128Field);
+ BSATN.U256FieldRW.Write(writer, U256Field);
+ BSATN.SbyteFieldRW.Write(writer, SbyteField);
+ BSATN.ShortFieldRW.Write(writer, ShortField);
+ BSATN.IntFieldRW.Write(writer, IntField);
+ BSATN.LongFieldRW.Write(writer, LongField);
+ BSATN.I128FieldRW.Write(writer, I128Field);
+ BSATN.I256FieldRW.Write(writer, I256Field);
+ BSATN.BoolFieldRW.Write(writer, BoolField);
+ BSATN.FloatFieldRW.Write(writer, FloatField);
+ BSATN.DoubleFieldRW.Write(writer, DoubleField);
+ BSATN.StringFieldRW.Write(writer, StringField);
+ BSATN.IdentityFieldRW.Write(writer, IdentityField);
+ BSATN.ConnectionIdFieldRW.Write(writer, ConnectionIdField);
+ BSATN.CustomStructFieldRW.Write(writer, CustomStructField);
+ BSATN.CustomClassFieldRW.Write(writer, CustomClassField);
+ BSATN.CustomEnumFieldRW.Write(writer, CustomEnumField);
+ BSATN.CustomTaggedEnumFieldRW.Write(writer, CustomTaggedEnumField);
+ BSATN.ListFieldRW.Write(writer, ListField);
+ BSATN.NullableValueFieldRW.Write(writer, NullableValueField);
+ BSATN.NullableReferenceFieldRW.Write(writer, NullableReferenceField);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -72,38 +72,38 @@ partial struct PublicTable : System.IEquatable, SpacetimeDB.BSATN.I
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.U8 ByteField = new();
- internal static readonly SpacetimeDB.BSATN.U16 UshortField = new();
- internal static readonly SpacetimeDB.BSATN.U32 UintField = new();
- internal static readonly SpacetimeDB.BSATN.U64 UlongField = new();
- internal static readonly SpacetimeDB.BSATN.U128Stdb U128Field = new();
- internal static readonly SpacetimeDB.BSATN.U256 U256Field = new();
- internal static readonly SpacetimeDB.BSATN.I8 SbyteField = new();
- internal static readonly SpacetimeDB.BSATN.I16 ShortField = new();
- internal static readonly SpacetimeDB.BSATN.I32 IntField = new();
- internal static readonly SpacetimeDB.BSATN.I64 LongField = new();
- internal static readonly SpacetimeDB.BSATN.I128Stdb I128Field = new();
- internal static readonly SpacetimeDB.BSATN.I256 I256Field = new();
- internal static readonly SpacetimeDB.BSATN.Bool BoolField = new();
- internal static readonly SpacetimeDB.BSATN.F32 FloatField = new();
- internal static readonly SpacetimeDB.BSATN.F64 DoubleField = new();
- internal static readonly SpacetimeDB.BSATN.String StringField = new();
- internal static readonly SpacetimeDB.Identity.BSATN IdentityField = new();
- internal static readonly SpacetimeDB.ConnectionId.BSATN ConnectionIdField = new();
- internal static readonly CustomStruct.BSATN CustomStructField = new();
- internal static readonly CustomClass.BSATN CustomClassField = new();
- internal static readonly SpacetimeDB.BSATN.Enum CustomEnumField = new();
- internal static readonly CustomTaggedEnum.BSATN CustomTaggedEnumField = new();
- internal static readonly SpacetimeDB.BSATN.List ListField =
+ internal static readonly SpacetimeDB.BSATN.U8 ByteFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.U16 UshortFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.U32 UintFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.U64 UlongFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.U128Stdb U128FieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.U256 U256FieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.I8 SbyteFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.I16 ShortFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.I32 IntFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.I64 LongFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.I128Stdb I128FieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.I256 I256FieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.Bool BoolFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.F32 FloatFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.F64 DoubleFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.String StringFieldRW = new();
+ internal static readonly SpacetimeDB.Identity.BSATN IdentityFieldRW = new();
+ internal static readonly SpacetimeDB.ConnectionId.BSATN ConnectionIdFieldRW = new();
+ internal static readonly CustomStruct.BSATN CustomStructFieldRW = new();
+ internal static readonly CustomClass.BSATN CustomClassFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.Enum CustomEnumFieldRW = new();
+ internal static readonly CustomTaggedEnum.BSATN CustomTaggedEnumFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.List ListFieldRW =
new();
internal static readonly SpacetimeDB.BSATN.ValueOption<
int,
SpacetimeDB.BSATN.I32
- > NullableValueField = new();
+ > NullableValueFieldRW = new();
internal static readonly SpacetimeDB.BSATN.RefOption<
string,
SpacetimeDB.BSATN.String
- > NullableReferenceField = new();
+ > NullableReferenceFieldRW = new();
public PublicTable Read(System.IO.BinaryReader reader)
{
@@ -123,36 +123,36 @@ partial struct PublicTable : System.IEquatable, SpacetimeDB.BSATN.I
registrar.RegisterType(_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(ByteField), ByteField.GetAlgebraicType(registrar)),
- new(nameof(UshortField), UshortField.GetAlgebraicType(registrar)),
- new(nameof(UintField), UintField.GetAlgebraicType(registrar)),
- new(nameof(UlongField), UlongField.GetAlgebraicType(registrar)),
- new(nameof(U128Field), U128Field.GetAlgebraicType(registrar)),
- new(nameof(U256Field), U256Field.GetAlgebraicType(registrar)),
- new(nameof(SbyteField), SbyteField.GetAlgebraicType(registrar)),
- new(nameof(ShortField), ShortField.GetAlgebraicType(registrar)),
- new(nameof(IntField), IntField.GetAlgebraicType(registrar)),
- new(nameof(LongField), LongField.GetAlgebraicType(registrar)),
- new(nameof(I128Field), I128Field.GetAlgebraicType(registrar)),
- new(nameof(I256Field), I256Field.GetAlgebraicType(registrar)),
- new(nameof(BoolField), BoolField.GetAlgebraicType(registrar)),
- new(nameof(FloatField), FloatField.GetAlgebraicType(registrar)),
- new(nameof(DoubleField), DoubleField.GetAlgebraicType(registrar)),
- new(nameof(StringField), StringField.GetAlgebraicType(registrar)),
- new(nameof(IdentityField), IdentityField.GetAlgebraicType(registrar)),
- new(nameof(ConnectionIdField), ConnectionIdField.GetAlgebraicType(registrar)),
- new(nameof(CustomStructField), CustomStructField.GetAlgebraicType(registrar)),
- new(nameof(CustomClassField), CustomClassField.GetAlgebraicType(registrar)),
- new(nameof(CustomEnumField), CustomEnumField.GetAlgebraicType(registrar)),
+ new("ByteField", ByteFieldRW.GetAlgebraicType(registrar)),
+ new("UshortField", UshortFieldRW.GetAlgebraicType(registrar)),
+ new("UintField", UintFieldRW.GetAlgebraicType(registrar)),
+ new("UlongField", UlongFieldRW.GetAlgebraicType(registrar)),
+ new("U128Field", U128FieldRW.GetAlgebraicType(registrar)),
+ new("U256Field", U256FieldRW.GetAlgebraicType(registrar)),
+ new("SbyteField", SbyteFieldRW.GetAlgebraicType(registrar)),
+ new("ShortField", ShortFieldRW.GetAlgebraicType(registrar)),
+ new("IntField", IntFieldRW.GetAlgebraicType(registrar)),
+ new("LongField", LongFieldRW.GetAlgebraicType(registrar)),
+ new("I128Field", I128FieldRW.GetAlgebraicType(registrar)),
+ new("I256Field", I256FieldRW.GetAlgebraicType(registrar)),
+ new("BoolField", BoolFieldRW.GetAlgebraicType(registrar)),
+ new("FloatField", FloatFieldRW.GetAlgebraicType(registrar)),
+ new("DoubleField", DoubleFieldRW.GetAlgebraicType(registrar)),
+ new("StringField", StringFieldRW.GetAlgebraicType(registrar)),
+ new("IdentityField", IdentityFieldRW.GetAlgebraicType(registrar)),
+ new("ConnectionIdField", ConnectionIdFieldRW.GetAlgebraicType(registrar)),
+ new("CustomStructField", CustomStructFieldRW.GetAlgebraicType(registrar)),
+ new("CustomClassField", CustomClassFieldRW.GetAlgebraicType(registrar)),
+ new("CustomEnumField", CustomEnumFieldRW.GetAlgebraicType(registrar)),
new(
- nameof(CustomTaggedEnumField),
- CustomTaggedEnumField.GetAlgebraicType(registrar)
+ "CustomTaggedEnumField",
+ CustomTaggedEnumFieldRW.GetAlgebraicType(registrar)
),
- new(nameof(ListField), ListField.GetAlgebraicType(registrar)),
- new(nameof(NullableValueField), NullableValueField.GetAlgebraicType(registrar)),
+ new("ListField", ListFieldRW.GetAlgebraicType(registrar)),
+ new("NullableValueField", NullableValueFieldRW.GetAlgebraicType(registrar)),
new(
- nameof(NullableReferenceField),
- NullableReferenceField.GetAlgebraicType(registrar)
+ "NullableReferenceField",
+ NullableReferenceFieldRW.GetAlgebraicType(registrar)
)
}
));
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/ExtraCompilationErrors.verified.txt b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/ExtraCompilationErrors.verified.txt
index befc302f0f..158020f2fc 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/ExtraCompilationErrors.verified.txt
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/ExtraCompilationErrors.verified.txt
@@ -116,7 +116,7 @@ SpacetimeDB.Internal.Module.RegisterClientVisibilityFilter(global::Module.MY_THI
},
{/*
{
- internal static readonly TRW Field = new();
+ internal static readonly TRW FieldRW = new();
^^^
*/
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#FFI.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#FFI.verified.cs
index dc112b7b2b..9b9688f86f 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#FFI.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#FFI.verified.cs
@@ -44,13 +44,13 @@ namespace SpacetimeDB
{
if (row.AutoIncField == default)
{
- row.AutoIncField = global::TestAutoIncNotInteger.BSATN.AutoIncField.Read(
+ row.AutoIncField = global::TestAutoIncNotInteger.BSATN.AutoIncFieldRW.Read(
reader
);
}
if (row.IdentityField == default)
{
- row.IdentityField = global::TestAutoIncNotInteger.BSATN.IdentityField.Read(
+ row.IdentityField = global::TestAutoIncNotInteger.BSATN.IdentityFieldRW.Read(
reader
);
}
@@ -859,14 +859,14 @@ static class ModuleRegistration
class DummyScheduledReducer : SpacetimeDB.Internal.IReducer
{
- private static readonly TestScheduleIssues.BSATN table = new();
+ private static readonly TestScheduleIssues.BSATN tableRW = new();
public SpacetimeDB.Internal.RawReducerDefV9 MakeReducerDef(
SpacetimeDB.BSATN.ITypeRegistrar registrar
) =>
new(
nameof(DummyScheduledReducer),
- [new(nameof(table), table.GetAlgebraicType(registrar))],
+ [new("table", tableRW.GetAlgebraicType(registrar))],
null
);
@@ -874,7 +874,7 @@ static class ModuleRegistration
{
TestScheduleIssues.DummyScheduledReducer(
(SpacetimeDB.ReducerContext)ctx,
- table.Read(reader)
+ tableRW.Read(reader)
);
}
}
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestAutoIncNotInteger.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestAutoIncNotInteger.verified.cs
index be52ff6aca..7efaa55cdc 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestAutoIncNotInteger.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestAutoIncNotInteger.verified.cs
@@ -8,14 +8,14 @@ partial struct TestAutoIncNotInteger
{
public void ReadFields(System.IO.BinaryReader reader)
{
- AutoIncField = BSATN.AutoIncField.Read(reader);
- IdentityField = BSATN.IdentityField.Read(reader);
+ AutoIncField = BSATN.AutoIncFieldRW.Read(reader);
+ IdentityField = BSATN.IdentityFieldRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.AutoIncField.Write(writer, AutoIncField);
- BSATN.IdentityField.Write(writer, IdentityField);
+ BSATN.AutoIncFieldRW.Write(writer, AutoIncField);
+ BSATN.IdentityFieldRW.Write(writer, IdentityField);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -28,8 +28,8 @@ partial struct TestAutoIncNotInteger
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.F32 AutoIncField = new();
- internal static readonly SpacetimeDB.BSATN.String IdentityField = new();
+ internal static readonly SpacetimeDB.BSATN.F32 AutoIncFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.String IdentityFieldRW = new();
public TestAutoIncNotInteger Read(System.IO.BinaryReader reader)
{
@@ -50,8 +50,8 @@ partial struct TestAutoIncNotInteger
_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(AutoIncField), AutoIncField.GetAlgebraicType(registrar)),
- new(nameof(IdentityField), IdentityField.GetAlgebraicType(registrar))
+ new("AutoIncField", AutoIncFieldRW.GetAlgebraicType(registrar)),
+ new("IdentityField", IdentityFieldRW.GetAlgebraicType(registrar))
}
)
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestIndexIssues.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestIndexIssues.verified.cs
index 5069f4fa3c..d39750331c 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestIndexIssues.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestIndexIssues.verified.cs
@@ -8,12 +8,12 @@ partial struct TestIndexIssues
{
public void ReadFields(System.IO.BinaryReader reader)
{
- SelfIndexingColumn = BSATN.SelfIndexingColumn.Read(reader);
+ SelfIndexingColumn = BSATN.SelfIndexingColumnRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.SelfIndexingColumn.Write(writer, SelfIndexingColumn);
+ BSATN.SelfIndexingColumnRW.Write(writer, SelfIndexingColumn);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -26,7 +26,7 @@ partial struct TestIndexIssues
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.I32 SelfIndexingColumn = new();
+ internal static readonly SpacetimeDB.BSATN.I32 SelfIndexingColumnRW = new();
public TestIndexIssues Read(System.IO.BinaryReader reader)
{
@@ -47,10 +47,7 @@ partial struct TestIndexIssues
_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(
- nameof(SelfIndexingColumn),
- SelfIndexingColumn.GetAlgebraicType(registrar)
- )
+ new("SelfIndexingColumn", SelfIndexingColumnRW.GetAlgebraicType(registrar))
}
)
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestScheduleIssues.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestScheduleIssues.verified.cs
index 263a5d6cf9..858ed058a5 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestScheduleIssues.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestScheduleIssues.verified.cs
@@ -8,18 +8,18 @@ partial struct TestScheduleIssues
{
public void ReadFields(System.IO.BinaryReader reader)
{
- IdWrongType = BSATN.IdWrongType.Read(reader);
- IdCorrectType = BSATN.IdCorrectType.Read(reader);
- ScheduleAtWrongType = BSATN.ScheduleAtWrongType.Read(reader);
- ScheduleAtCorrectType = BSATN.ScheduleAtCorrectType.Read(reader);
+ IdWrongType = BSATN.IdWrongTypeRW.Read(reader);
+ IdCorrectType = BSATN.IdCorrectTypeRW.Read(reader);
+ ScheduleAtWrongType = BSATN.ScheduleAtWrongTypeRW.Read(reader);
+ ScheduleAtCorrectType = BSATN.ScheduleAtCorrectTypeRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.IdWrongType.Write(writer, IdWrongType);
- BSATN.IdCorrectType.Write(writer, IdCorrectType);
- BSATN.ScheduleAtWrongType.Write(writer, ScheduleAtWrongType);
- BSATN.ScheduleAtCorrectType.Write(writer, ScheduleAtCorrectType);
+ BSATN.IdWrongTypeRW.Write(writer, IdWrongType);
+ BSATN.IdCorrectTypeRW.Write(writer, IdCorrectType);
+ BSATN.ScheduleAtWrongTypeRW.Write(writer, ScheduleAtWrongType);
+ BSATN.ScheduleAtCorrectTypeRW.Write(writer, ScheduleAtCorrectType);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -32,10 +32,10 @@ partial struct TestScheduleIssues
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.String IdWrongType = new();
- internal static readonly SpacetimeDB.BSATN.I32 IdCorrectType = new();
- internal static readonly SpacetimeDB.BSATN.I32 ScheduleAtWrongType = new();
- internal static readonly SpacetimeDB.ScheduleAt.BSATN ScheduleAtCorrectType = new();
+ internal static readonly SpacetimeDB.BSATN.String IdWrongTypeRW = new();
+ internal static readonly SpacetimeDB.BSATN.I32 IdCorrectTypeRW = new();
+ internal static readonly SpacetimeDB.BSATN.I32 ScheduleAtWrongTypeRW = new();
+ internal static readonly SpacetimeDB.ScheduleAt.BSATN ScheduleAtCorrectTypeRW = new();
public TestScheduleIssues Read(System.IO.BinaryReader reader)
{
@@ -56,15 +56,15 @@ partial struct TestScheduleIssues
_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(IdWrongType), IdWrongType.GetAlgebraicType(registrar)),
- new(nameof(IdCorrectType), IdCorrectType.GetAlgebraicType(registrar)),
+ new("IdWrongType", IdWrongTypeRW.GetAlgebraicType(registrar)),
+ new("IdCorrectType", IdCorrectTypeRW.GetAlgebraicType(registrar)),
new(
- nameof(ScheduleAtWrongType),
- ScheduleAtWrongType.GetAlgebraicType(registrar)
+ "ScheduleAtWrongType",
+ ScheduleAtWrongTypeRW.GetAlgebraicType(registrar)
),
new(
- nameof(ScheduleAtCorrectType),
- ScheduleAtCorrectType.GetAlgebraicType(registrar)
+ "ScheduleAtCorrectType",
+ ScheduleAtCorrectTypeRW.GetAlgebraicType(registrar)
)
}
)
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestTableTaggedEnum.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestTableTaggedEnum.verified.cs
index 891dea4b9e..7e321681b8 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestTableTaggedEnum.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestTableTaggedEnum.verified.cs
@@ -18,15 +18,15 @@ partial record TestTableTaggedEnum : System.IEquatable
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.I32 X = new();
- internal static readonly SpacetimeDB.BSATN.I32 Y = new();
+ internal static readonly SpacetimeDB.BSATN.I32 XRW = new();
+ internal static readonly SpacetimeDB.BSATN.I32 YRW = new();
public TestTableTaggedEnum Read(System.IO.BinaryReader reader)
{
return reader.ReadByte() switch
{
- 0 => new X(X.Read(reader)),
- 1 => new Y(Y.Read(reader)),
+ 0 => new X(XRW.Read(reader)),
+ 1 => new Y(YRW.Read(reader)),
_
=> throw new System.InvalidOperationException(
"Invalid tag value, this state should be unreachable."
@@ -40,11 +40,11 @@ partial record TestTableTaggedEnum : System.IEquatable
{
case X(var inner):
writer.Write((byte)0);
- X.Write(writer, inner);
+ XRW.Write(writer, inner);
break;
case Y(var inner):
writer.Write((byte)1);
- Y.Write(writer, inner);
+ YRW.Write(writer, inner);
break;
}
}
@@ -56,8 +56,8 @@ partial record TestTableTaggedEnum : System.IEquatable
_ => new SpacetimeDB.BSATN.AlgebraicType.Sum(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(X), X.GetAlgebraicType(registrar)),
- new(nameof(Y), Y.GetAlgebraicType(registrar))
+ new("X", XRW.GetAlgebraicType(registrar)),
+ new("Y", YRW.GetAlgebraicType(registrar))
}
)
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestUniqueNotEquatable.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestUniqueNotEquatable.verified.cs
index b685bd427c..6d4eab1f2f 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestUniqueNotEquatable.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Module#TestUniqueNotEquatable.verified.cs
@@ -8,14 +8,14 @@ partial struct TestUniqueNotEquatable
{
public void ReadFields(System.IO.BinaryReader reader)
{
- UniqueField = BSATN.UniqueField.Read(reader);
- PrimaryKeyField = BSATN.PrimaryKeyField.Read(reader);
+ UniqueField = BSATN.UniqueFieldRW.Read(reader);
+ PrimaryKeyField = BSATN.PrimaryKeyFieldRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.UniqueField.Write(writer, UniqueField);
- BSATN.PrimaryKeyField.Write(writer, PrimaryKeyField);
+ BSATN.UniqueFieldRW.Write(writer, UniqueField);
+ BSATN.PrimaryKeyFieldRW.Write(writer, PrimaryKeyField);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -31,8 +31,8 @@ partial struct TestUniqueNotEquatable
internal static readonly SpacetimeDB.BSATN.ValueOption<
int,
SpacetimeDB.BSATN.I32
- > UniqueField = new();
- internal static readonly SpacetimeDB.BSATN.Enum PrimaryKeyField =
+ > UniqueFieldRW = new();
+ internal static readonly SpacetimeDB.BSATN.Enum PrimaryKeyFieldRW =
new();
public TestUniqueNotEquatable Read(System.IO.BinaryReader reader)
@@ -54,8 +54,8 @@ partial struct TestUniqueNotEquatable
_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(UniqueField), UniqueField.GetAlgebraicType(registrar)),
- new(nameof(PrimaryKeyField), PrimaryKeyField.GetAlgebraicType(registrar))
+ new("UniqueField", UniqueFieldRW.GetAlgebraicType(registrar)),
+ new("PrimaryKeyField", PrimaryKeyFieldRW.GetAlgebraicType(registrar))
}
)
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumField.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumField.verified.cs
index afdaf691de..9f0584e348 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumField.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumField.verified.cs
@@ -18,15 +18,15 @@ partial record TestTaggedEnumField : System.IEquatable
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.I32 X = new();
- internal static readonly SpacetimeDB.BSATN.I32 Y = new();
+ internal static readonly SpacetimeDB.BSATN.I32 XRW = new();
+ internal static readonly SpacetimeDB.BSATN.I32 YRW = new();
public TestTaggedEnumField Read(System.IO.BinaryReader reader)
{
return reader.ReadByte() switch
{
- 0 => new X(X.Read(reader)),
- 1 => new Y(Y.Read(reader)),
+ 0 => new X(XRW.Read(reader)),
+ 1 => new Y(YRW.Read(reader)),
_
=> throw new System.InvalidOperationException(
"Invalid tag value, this state should be unreachable."
@@ -40,11 +40,11 @@ partial record TestTaggedEnumField : System.IEquatable
{
case X(var inner):
writer.Write((byte)0);
- X.Write(writer, inner);
+ XRW.Write(writer, inner);
break;
case Y(var inner):
writer.Write((byte)1);
- Y.Write(writer, inner);
+ YRW.Write(writer, inner);
break;
}
}
@@ -56,8 +56,8 @@ partial record TestTaggedEnumField : System.IEquatable
_ => new SpacetimeDB.BSATN.AlgebraicType.Sum(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(X), X.GetAlgebraicType(registrar)),
- new(nameof(Y), Y.GetAlgebraicType(registrar))
+ new("X", XRW.GetAlgebraicType(registrar)),
+ new("Y", YRW.GetAlgebraicType(registrar))
}
)
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumInlineTuple.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumInlineTuple.verified.cs
index 5f6ef5df48..761bdacb92 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumInlineTuple.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTaggedEnumInlineTuple.verified.cs
@@ -12,13 +12,13 @@ partial record TestTaggedEnumInlineTuple : System.IEquatable
{
- internal static readonly SpacetimeDB.BSATN.I32 Item1 = new();
+ internal static readonly SpacetimeDB.BSATN.I32 Item1RW = new();
public TestTaggedEnumInlineTuple Read(System.IO.BinaryReader reader)
{
return reader.ReadByte() switch
{
- 0 => new Item1(Item1.Read(reader)),
+ 0 => new Item1(Item1RW.Read(reader)),
_
=> throw new System.InvalidOperationException(
"Invalid tag value, this state should be unreachable."
@@ -32,7 +32,7 @@ partial record TestTaggedEnumInlineTuple : System.IEquatable new SpacetimeDB.BSATN.AlgebraicType.Sum(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(Item1), Item1.GetAlgebraicType(registrar))
+ new("Item1", Item1RW.GetAlgebraicType(registrar))
}
)
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTypeParams_T_.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTypeParams_T_.verified.cs
index a663babc03..8558fa804b 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTypeParams_T_.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestTypeParams_T_.verified.cs
@@ -8,12 +8,12 @@ partial struct TestTypeParams
{
public void ReadFields(System.IO.BinaryReader reader)
{
- Field = BSATN.Field.Read(reader);
+ Field = BSATN.FieldRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.Field.Write(writer, Field);
+ BSATN.FieldRW.Write(writer, Field);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -26,7 +26,7 @@ partial struct TestTypeParams
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite>
{
- internal static readonly TRW Field = new();
+ internal static readonly TRW FieldRW = new();
public TestTypeParams Read(System.IO.BinaryReader reader)
{
@@ -47,7 +47,7 @@ partial struct TestTypeParams
_ => new SpacetimeDB.BSATN.AlgebraicType.Product(
new SpacetimeDB.BSATN.AggregateElement[]
{
- new(nameof(Field), Field.GetAlgebraicType(registrar))
+ new("Field", FieldRW.GetAlgebraicType(registrar))
}
)
);
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestUnsupportedType.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestUnsupportedType.verified.cs
index 362f973cc0..83e1269067 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestUnsupportedType.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/diag/snapshots/Type#TestUnsupportedType.verified.cs
@@ -8,18 +8,18 @@ partial struct TestUnsupportedType
{
public void ReadFields(System.IO.BinaryReader reader)
{
- UnsupportedSpecialType = BSATN.UnsupportedSpecialType.Read(reader);
- UnsupportedSystemType = BSATN.UnsupportedSystemType.Read(reader);
- UnresolvedType = BSATN.UnresolvedType.Read(reader);
- UnsupportedEnum = BSATN.UnsupportedEnum.Read(reader);
+ UnsupportedSpecialType = BSATN.UnsupportedSpecialTypeRW.Read(reader);
+ UnsupportedSystemType = BSATN.UnsupportedSystemTypeRW.Read(reader);
+ UnresolvedType = BSATN.UnresolvedTypeRW.Read(reader);
+ UnsupportedEnum = BSATN.UnsupportedEnumRW.Read(reader);
}
public void WriteFields(System.IO.BinaryWriter writer)
{
- BSATN.UnsupportedSpecialType.Write(writer, UnsupportedSpecialType);
- BSATN.UnsupportedSystemType.Write(writer, UnsupportedSystemType);
- BSATN.UnresolvedType.Write(writer, UnresolvedType);
- BSATN.UnsupportedEnum.Write(writer, UnsupportedEnum);
+ BSATN.UnsupportedSpecialTypeRW.Write(writer, UnsupportedSpecialType);
+ BSATN.UnsupportedSystemTypeRW.Write(writer, UnsupportedSystemType);
+ BSATN.UnresolvedTypeRW.Write(writer, UnresolvedType);
+ BSATN.UnsupportedEnumRW.Write(writer, UnsupportedEnum);
}
object SpacetimeDB.BSATN.IStructuralReadWrite.GetSerializer()
@@ -32,12 +32,12 @@ partial struct TestUnsupportedType
public readonly partial struct BSATN : SpacetimeDB.BSATN.IReadWrite
{
- internal static readonly SpacetimeDB.BSATN.Unsupported UnsupportedSpecialType =
+ internal static readonly SpacetimeDB.BSATN.Unsupported UnsupportedSpecialTypeRW =
new();
- internal static readonly SpacetimeDB.BSATN.Unsupported UnsupportedSystemType =
+ internal static readonly SpacetimeDB.BSATN.Unsupported UnsupportedSystemTypeRW =
new();
- internal static readonly SpacetimeDB.BSATN.Unsupported