diff --git a/crates/bindings-csharp/BSATN.Codegen/Type.cs b/crates/bindings-csharp/BSATN.Codegen/Type.cs
index 4bfbf45ec7e..99823234d23 100644
--- a/crates/bindings-csharp/BSATN.Codegen/Type.cs
+++ b/crates/bindings-csharp/BSATN.Codegen/Type.cs
@@ -53,6 +53,12 @@ public abstract record TypeUse(string Name, string BSATNName)
///
public static TypeUse Parse(ISymbol member, ITypeSymbol typeSymbol, DiagReporter diag)
{
+ if (typeSymbol.SpecialType == SpecialType.System_Void)
+ {
+ // Treat void as equivalent to Unit type
+ return new ReferenceUse("SpacetimeDB.Unit", "SpacetimeDB.Unit.BSATN");
+ }
+
var type = SymbolToName(typeSymbol);
string typeInfo;
diff --git a/crates/bindings-csharp/BSATN.Runtime.Tests/BSATN.Runtime.Tests.csproj b/crates/bindings-csharp/BSATN.Runtime.Tests/BSATN.Runtime.Tests.csproj
index 5bb0e2c30a6..b4bdf12f40e 100644
--- a/crates/bindings-csharp/BSATN.Runtime.Tests/BSATN.Runtime.Tests.csproj
+++ b/crates/bindings-csharp/BSATN.Runtime.Tests/BSATN.Runtime.Tests.csproj
@@ -1,5 +1,4 @@
-
false
true
@@ -20,7 +19,10 @@
-
+
-
diff --git a/crates/bindings-csharp/BSATN.Runtime.Tests/Tests.cs b/crates/bindings-csharp/BSATN.Runtime.Tests/Tests.cs
index c22879a596c..c3e26ddb09b 100644
--- a/crates/bindings-csharp/BSATN.Runtime.Tests/Tests.cs
+++ b/crates/bindings-csharp/BSATN.Runtime.Tests/Tests.cs
@@ -246,20 +246,12 @@ public BasicDataClass((int x, string y, int? z, string? w) data)
}
[Type]
- public partial struct BasicDataStruct
+ public partial struct BasicDataStruct((int x, string y, int? z, string? w) data)
{
- public int X;
- public string Y;
- public int? Z;
- public string? W;
-
- public BasicDataStruct((int x, string y, int? z, string? w) data)
- {
- X = data.x;
- Y = data.y;
- Z = data.z;
- W = data.w;
- }
+ public int X = data.x;
+ public string Y = data.y;
+ public int? Z = data.z;
+ public string? W = data.w;
}
[Type]
@@ -315,12 +307,12 @@ public void Add(bool collides)
}
}
- public double CollisionFraction
+ public readonly double CollisionFraction
{
get => (double)Collisions / (double)Comparisons;
}
- public void AssertCollisionsLessThan(double fraction)
+ public readonly void AssertCollisionsLessThan(double fraction)
{
Assert.True(
CollisionFraction < fraction,
@@ -626,18 +618,13 @@ public static void GeneratedNestedListRoundTrip()
.Select(list => new ContainsNestedList(list));
#pragma warning restore CS8620 // Argument cannot be used for parameter due to differences in the nullability of reference types.
-
static readonly Gen<(ContainsNestedList e1, ContainsNestedList e2)> GenTwoContainsNestedList =
Gen.Select(GenContainsNestedList, GenContainsNestedList, (e1, e2) => (e1, e2));
- class EnumerableEqualityComparer : EqualityComparer>
+ class EnumerableEqualityComparer(EqualityComparer equalityComparer)
+ : EqualityComparer>
{
- private readonly EqualityComparer EqualityComparer;
-
- public EnumerableEqualityComparer(EqualityComparer equalityComparer)
- {
- EqualityComparer = equalityComparer;
- }
+ private readonly EqualityComparer EqualityComparer = equalityComparer;
public override bool Equals(IEnumerable? x, IEnumerable? y) =>
x == null ? y == null : (y == null ? false : x.SequenceEqual(y, EqualityComparer));
diff --git a/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj b/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj
index b781668147d..c12bad75129 100644
--- a/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj
+++ b/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj
@@ -1,5 +1,4 @@
-
SpacetimeDB.BSATN.Runtime
1.11.0
@@ -18,18 +17,25 @@
-
+
-
+
-
diff --git a/crates/bindings-csharp/BSATN.Runtime/BSATN/AlgebraicType.cs b/crates/bindings-csharp/BSATN.Runtime/BSATN/AlgebraicType.cs
index 603feae5c78..602afa7af5f 100644
--- a/crates/bindings-csharp/BSATN.Runtime/BSATN/AlgebraicType.cs
+++ b/crates/bindings-csharp/BSATN.Runtime/BSATN/AlgebraicType.cs
@@ -6,17 +6,11 @@ public interface ITypeRegistrar
}
[SpacetimeDB.Type]
-public partial struct AggregateElement
+public partial struct AggregateElement(string name, AlgebraicType algebraicType)
{
- public string? Name;
+ public string? Name = name;
- public AlgebraicType AlgebraicType;
-
- public AggregateElement(string name, AlgebraicType algebraicType)
- {
- Name = name;
- AlgebraicType = algebraicType;
- }
+ public AlgebraicType AlgebraicType = algebraicType;
}
[SpacetimeDB.Type]
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 42936be56cd..956ff5e43cf 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
@@ -5,10 +5,13 @@
// This is needed so every module build doesn't generate a full LocalReadOnly type, but just adds on to the existing.
// We extend it here with generated table accessors, and just need to suppress the duplicate-type warning.
#pragma warning disable CS0436
+#pragma warning disable STDB_UNSTABLE
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+using Internal = SpacetimeDB.Internal;
+using TxContext = SpacetimeDB.Internal.TxContext;
namespace SpacetimeDB
{
@@ -27,27 +30,21 @@ internal ReducerContext(
Identity identity,
ConnectionId? connectionId,
Random random,
- Timestamp time
+ Timestamp time,
+ AuthCtx? senderAuth = null
)
{
Sender = identity;
ConnectionId = connectionId;
Rng = random;
Timestamp = time;
- SenderAuth = AuthCtx.BuildFromSystemTables(connectionId, identity);
+ SenderAuth = senderAuth ?? AuthCtx.BuildFromSystemTables(connectionId, identity);
}
}
- public sealed record ProcedureContext : Internal.IProcedureContext
+ public sealed partial class ProcedureContext : global::SpacetimeDB.ProcedureContextBase
{
- public readonly Identity Sender;
- public readonly ConnectionId? ConnectionId;
- public readonly Random Rng;
- public readonly Timestamp Timestamp;
- public readonly AuthCtx SenderAuth;
-
- // We need this property to be non-static for parity with client SDK.
- public Identity Identity => Internal.IProcedureContext.GetIdentity();
+ private readonly Local _db = new();
internal ProcedureContext(
Identity identity,
@@ -55,13 +52,61 @@ internal ProcedureContext(
Random random,
Timestamp time
)
- {
- Sender = identity;
- ConnectionId = connectionId;
- Rng = random;
- Timestamp = time;
- SenderAuth = AuthCtx.BuildFromSystemTables(connectionId, identity);
- }
+ : base(identity, connectionId, random, time) { }
+
+ protected override global::SpacetimeDB.LocalBase CreateLocal() => _db;
+
+ protected override global::SpacetimeDB.ProcedureTxContextBase CreateTxContext(
+ Internal.TxContext inner
+ ) => _cached ??= new ProcedureTxContext(inner);
+
+ private ProcedureTxContext? _cached;
+
+ [Experimental("STDB_UNSTABLE")]
+ public Local Db => _db;
+
+ [Experimental("STDB_UNSTABLE")]
+ public TResult WithTx(Func body) =>
+ base.WithTx(tx => body((ProcedureTxContext)tx));
+
+ [Experimental("STDB_UNSTABLE")]
+ public TxOutcome TryWithTx(
+ Func> body
+ )
+ where TError : Exception => base.TryWithTx(tx => body((ProcedureTxContext)tx));
+ }
+
+ [Experimental("STDB_UNSTABLE")]
+ public sealed class ProcedureTxContext : global::SpacetimeDB.ProcedureTxContextBase
+ {
+ internal ProcedureTxContext(Internal.TxContext inner)
+ : base(inner) { }
+
+ public new Local Db => (Local)base.Db;
+ }
+
+ public sealed class Local : global::SpacetimeDB.LocalBase
+ {
+ public global::SpacetimeDB.Internal.TableHandles.Player Player => new();
+ public global::SpacetimeDB.Internal.TableHandles.TestAutoIncNotInteger TestAutoIncNotInteger =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestDefaultFieldValues TestDefaultFieldValues =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestDuplicateTableName TestDuplicateTableName =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestIndexIssues TestIndexIssues => new();
+ public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithMissingScheduleAtField TestScheduleWithMissingScheduleAtField =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithoutPrimaryKey TestScheduleWithoutPrimaryKey =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithoutScheduleAt TestScheduleWithoutScheduleAt =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithWrongPrimaryKeyType TestScheduleWithWrongPrimaryKeyType =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithWrongScheduleAtType TestScheduleWithWrongScheduleAtType =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.TestUniqueNotEquatable TestUniqueNotEquatable =>
+ new();
}
public sealed record ViewContext : DbContext, Internal.IViewContext
@@ -82,977 +127,944 @@ public sealed record AnonymousViewContext
internal AnonymousViewContext(Internal.LocalReadOnly db)
: base(db) { }
}
+}
- namespace Internal.TableHandles
+namespace SpacetimeDB.Internal.TableHandles
+{
+ public readonly struct Player : global::SpacetimeDB.Internal.ITableView
{
- public readonly struct Player
- : global::SpacetimeDB.Internal.ITableView
+ static global::Player global::SpacetimeDB.Internal.ITableView<
+ Player,
+ global::Player
+ >.ReadGenFields(System.IO.BinaryReader reader, global::Player row)
{
- static global::Player global::SpacetimeDB.Internal.ITableView<
- Player,
- global::Player
- >.ReadGenFields(System.IO.BinaryReader reader, global::Player row)
- {
- return row;
- }
+ return row;
+ }
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
- Player,
- global::Player
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(Player),
- ProductTypeRef: (uint)
- new global::Player.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "Identity",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- Player,
- global::Player
- >.MakeUniqueConstraint(0)
- ],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ Player,
+ global::Player
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(Player),
+ ProductTypeRef: (uint)new global::Player.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "Identity",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ Player,
+ global::Player
+ >.MakeUniqueConstraint(0)
+ ],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView.DoCount();
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView.DoCount();
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView.DoIter();
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView.DoIter();
- public global::Player Insert(global::Player row) =>
- global::SpacetimeDB.Internal.ITableView.DoInsert(row);
+ public global::Player Insert(global::Player row) =>
+ global::SpacetimeDB.Internal.ITableView.DoInsert(row);
- public bool Delete(global::Player row) =>
- global::SpacetimeDB.Internal.ITableView.DoDelete(row);
+ public bool Delete(global::Player row) =>
+ global::SpacetimeDB.Internal.ITableView.DoDelete(row);
- public sealed class IdentityUniqueIndex
- : UniqueIndex<
- Player,
- global::Player,
- SpacetimeDB.Identity,
- SpacetimeDB.Identity.BSATN
- >
- {
- internal IdentityUniqueIndex()
- : base("Player_Identity_idx_btree") { }
+ public sealed class IdentityUniqueIndex
+ : UniqueIndex
+ {
+ internal IdentityUniqueIndex()
+ : base("Player_Identity_idx_btree") { }
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::Player? Find(SpacetimeDB.Identity key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::Player? Find(SpacetimeDB.Identity key) =>
+ DoFilter(key).Cast().SingleOrDefault();
- public global::Player Update(global::Player row) => DoUpdate(row);
- }
+ public global::Player Update(global::Player row) => DoUpdate(row);
+ }
- public IdentityUniqueIndex Identity => new();
+ public IdentityUniqueIndex Identity => new();
+ }
+
+ public readonly struct TestAutoIncNotInteger
+ : global::SpacetimeDB.Internal.ITableView<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger
+ >
+ {
+ static global::TestAutoIncNotInteger global::SpacetimeDB.Internal.ITableView<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestAutoIncNotInteger row)
+ {
+ if (row.AutoIncField == default)
+ {
+ row.AutoIncField = global::TestAutoIncNotInteger.BSATN.AutoIncFieldRW.Read(reader);
+ }
+ if (row.IdentityField == default)
+ {
+ row.IdentityField = global::TestAutoIncNotInteger.BSATN.IdentityFieldRW.Read(
+ reader
+ );
+ }
+ return row;
}
- public readonly struct TestAutoIncNotInteger
- : global::SpacetimeDB.Internal.ITableView<
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestAutoIncNotInteger),
+ ProductTypeRef: (uint)
+ new global::TestAutoIncNotInteger.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "IdentityField",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger
+ >.MakeUniqueConstraint(1)
+ ],
+ Sequences:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger
+ >.MakeSequence(0),
+ global::SpacetimeDB.Internal.ITableView<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger
+ >.MakeSequence(1)
+ ],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestAutoIncNotInteger,
global::TestAutoIncNotInteger
- >
- {
- static global::TestAutoIncNotInteger global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestAutoIncNotInteger,
global::TestAutoIncNotInteger
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestAutoIncNotInteger row)
- {
- if (row.AutoIncField == default)
- {
- row.AutoIncField = global::TestAutoIncNotInteger.BSATN.AutoIncFieldRW.Read(
- reader
- );
- }
- if (row.IdentityField == default)
- {
- row.IdentityField = global::TestAutoIncNotInteger.BSATN.IdentityFieldRW.Read(
- reader
- );
- }
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestAutoIncNotInteger Insert(global::TestAutoIncNotInteger row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestAutoIncNotInteger,
global::TestAutoIncNotInteger
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestAutoIncNotInteger),
- ProductTypeRef: (uint)
- new global::TestAutoIncNotInteger.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "IdentityField",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger
- >.MakeUniqueConstraint(1)
- ],
- Sequences:
- [
- global::SpacetimeDB.Internal.ITableView<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger
- >.MakeSequence(0),
- global::SpacetimeDB.Internal.ITableView<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger
- >.MakeSequence(1)
- ],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ >.DoInsert(row);
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger
- >.DoIter();
-
- public global::TestAutoIncNotInteger Insert(global::TestAutoIncNotInteger row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger
- >.DoInsert(row);
-
- public bool Delete(global::TestAutoIncNotInteger row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger
- >.DoDelete(row);
-
- public sealed class IdentityFieldUniqueIndex
- : UniqueIndex<
- TestAutoIncNotInteger,
- global::TestAutoIncNotInteger,
- string,
- SpacetimeDB.BSATN.String
- >
- {
- internal IdentityFieldUniqueIndex()
- : base("TestAutoIncNotInteger_IdentityField_idx_btree") { }
+ public bool Delete(global::TestAutoIncNotInteger row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger
+ >.DoDelete(row);
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::TestAutoIncNotInteger? Find(string key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public sealed class IdentityFieldUniqueIndex
+ : UniqueIndex<
+ TestAutoIncNotInteger,
+ global::TestAutoIncNotInteger,
+ string,
+ SpacetimeDB.BSATN.String
+ >
+ {
+ internal IdentityFieldUniqueIndex()
+ : base("TestAutoIncNotInteger_IdentityField_idx_btree") { }
- public global::TestAutoIncNotInteger Update(global::TestAutoIncNotInteger row) =>
- DoUpdate(row);
- }
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::TestAutoIncNotInteger? Find(string key) =>
+ DoFilter(key).Cast().SingleOrDefault();
- public IdentityFieldUniqueIndex IdentityField => new();
+ public global::TestAutoIncNotInteger Update(global::TestAutoIncNotInteger row) =>
+ DoUpdate(row);
}
- public readonly struct TestDefaultFieldValues
- : global::SpacetimeDB.Internal.ITableView<
+ public IdentityFieldUniqueIndex IdentityField => new();
+ }
+
+ public readonly struct TestDefaultFieldValues
+ : global::SpacetimeDB.Internal.ITableView<
+ TestDefaultFieldValues,
+ global::TestDefaultFieldValues
+ >
+ {
+ static global::TestDefaultFieldValues global::SpacetimeDB.Internal.ITableView<
+ TestDefaultFieldValues,
+ global::TestDefaultFieldValues
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestDefaultFieldValues row)
+ {
+ return row;
+ }
+
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestDefaultFieldValues,
+ global::TestDefaultFieldValues
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestDefaultFieldValues),
+ ProductTypeRef: (uint)
+ new global::TestDefaultFieldValues.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "UniqueField",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ TestDefaultFieldValues,
+ global::TestDefaultFieldValues
+ >.MakeUniqueConstraint(0)
+ ],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestDefaultFieldValues,
global::TestDefaultFieldValues
- >
- {
- static global::TestDefaultFieldValues global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestDefaultFieldValues,
global::TestDefaultFieldValues
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestDefaultFieldValues row)
- {
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestDefaultFieldValues Insert(global::TestDefaultFieldValues row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestDefaultFieldValues,
global::TestDefaultFieldValues
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestDefaultFieldValues),
- ProductTypeRef: (uint)
- new global::TestDefaultFieldValues.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "UniqueField",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- TestDefaultFieldValues,
- global::TestDefaultFieldValues
- >.MakeUniqueConstraint(0)
- ],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ >.DoInsert(row);
+
+ public bool Delete(global::TestDefaultFieldValues row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestDefaultFieldValues,
+ global::TestDefaultFieldValues
+ >.DoDelete(row);
+ }
+
+ public readonly struct TestDuplicateTableName
+ : global::SpacetimeDB.Internal.ITableView<
+ TestDuplicateTableName,
+ global::TestDuplicateTableName
+ >
+ {
+ static global::TestDuplicateTableName global::SpacetimeDB.Internal.ITableView<
+ TestDuplicateTableName,
+ global::TestDuplicateTableName
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestDuplicateTableName row)
+ {
+ return row;
+ }
+
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestDuplicateTableName,
+ global::TestDuplicateTableName
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestDuplicateTableName),
+ ProductTypeRef: (uint)
+ new global::TestDuplicateTableName.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes: [],
+ Constraints: [],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestDefaultFieldValues,
- global::TestDefaultFieldValues
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestDefaultFieldValues,
- global::TestDefaultFieldValues
- >.DoIter();
-
- public global::TestDefaultFieldValues Insert(global::TestDefaultFieldValues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestDefaultFieldValues,
- global::TestDefaultFieldValues
- >.DoInsert(row);
-
- public bool Delete(global::TestDefaultFieldValues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestDefaultFieldValues,
- global::TestDefaultFieldValues
- >.DoDelete(row);
- }
-
- public readonly struct TestDuplicateTableName
- : global::SpacetimeDB.Internal.ITableView<
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestDuplicateTableName,
global::TestDuplicateTableName
- >
- {
- static global::TestDuplicateTableName global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestDuplicateTableName,
global::TestDuplicateTableName
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestDuplicateTableName row)
- {
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestDuplicateTableName Insert(global::TestDuplicateTableName row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestDuplicateTableName,
global::TestDuplicateTableName
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestDuplicateTableName),
- ProductTypeRef: (uint)
- new global::TestDuplicateTableName.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes: [],
- Constraints: [],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ >.DoInsert(row);
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestDuplicateTableName,
- global::TestDuplicateTableName
- >.DoCount();
+ public bool Delete(global::TestDuplicateTableName row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestDuplicateTableName,
+ global::TestDuplicateTableName
+ >.DoDelete(row);
+ }
+
+ public readonly struct TestIndexIssues
+ : global::SpacetimeDB.Internal.ITableView
+ {
+ static global::TestIndexIssues global::SpacetimeDB.Internal.ITableView<
+ TestIndexIssues,
+ global::TestIndexIssues
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestIndexIssues row)
+ {
+ return row;
+ }
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestDuplicateTableName,
- global::TestDuplicateTableName
- >.DoIter();
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestIndexIssues,
+ global::TestIndexIssues
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestIndexIssues),
+ ProductTypeRef: (uint)
+ new global::TestIndexIssues.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "TestIndexWithoutColumns",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([])
+ ),
+ new(
+ Name: null,
+ AccessorName: "TestIndexWithEmptyColumns",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([])
+ ),
+ new(
+ Name: null,
+ AccessorName: "TestUnknownColumns",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([])
+ ),
+ new(
+ Name: null,
+ AccessorName: "TestUnexpectedColumns",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ )
+ ],
+ Constraints: [],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
- public global::TestDuplicateTableName Insert(global::TestDuplicateTableName row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestDuplicateTableName,
- global::TestDuplicateTableName
- >.DoInsert(row);
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestIndexIssues,
+ global::TestIndexIssues
+ >.DoCount();
- public bool Delete(global::TestDuplicateTableName row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestDuplicateTableName,
- global::TestDuplicateTableName
- >.DoDelete(row);
- }
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestIndexIssues,
+ global::TestIndexIssues
+ >.DoIter();
- public readonly struct TestIndexIssues
- : global::SpacetimeDB.Internal.ITableView
- {
- static global::TestIndexIssues global::SpacetimeDB.Internal.ITableView<
+ public global::TestIndexIssues Insert(global::TestIndexIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestIndexIssues,
global::TestIndexIssues
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestIndexIssues row)
- {
- return row;
- }
+ >.DoInsert(row);
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public bool Delete(global::TestIndexIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestIndexIssues,
global::TestIndexIssues
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestIndexIssues),
- ProductTypeRef: (uint)
- new global::TestIndexIssues.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "TestIndexWithoutColumns",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([])
- ),
- new(
- Name: null,
- AccessorName: "TestIndexWithEmptyColumns",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([])
- ),
- new(
- Name: null,
- AccessorName: "TestUnknownColumns",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([])
- ),
- new(
- Name: null,
- AccessorName: "TestUnexpectedColumns",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- )
- ],
- Constraints: [],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ >.DoDelete(row);
+
+ public sealed class TestIndexWithoutColumnsIndex()
+ : SpacetimeDB.Internal.IndexBase(
+ "TestIndexIssues__idx_btree"
+ ) { }
+
+ public TestIndexWithoutColumnsIndex TestIndexWithoutColumns => new();
+
+ public sealed class TestIndexWithEmptyColumnsIndex()
+ : SpacetimeDB.Internal.IndexBase(
+ "TestIndexIssues__idx_btree"
+ ) { }
+
+ public TestIndexWithEmptyColumnsIndex TestIndexWithEmptyColumns => new();
+
+ public sealed class TestUnknownColumnsIndex()
+ : SpacetimeDB.Internal.IndexBase(
+ "TestIndexIssues__idx_btree"
+ ) { }
+
+ public TestUnknownColumnsIndex TestUnknownColumns => new();
+
+ public sealed class TestUnexpectedColumnsIndex()
+ : SpacetimeDB.Internal.IndexBase(
+ "TestIndexIssues_SelfIndexingColumn_idx_btree"
+ )
+ {
+ public IEnumerable Filter(int SelfIndexingColumn) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ SelfIndexingColumn
+ )
);
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestIndexIssues,
- global::TestIndexIssues
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestIndexIssues,
- global::TestIndexIssues
- >.DoIter();
-
- public global::TestIndexIssues Insert(global::TestIndexIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestIndexIssues,
- global::TestIndexIssues
- >.DoInsert(row);
-
- public bool Delete(global::TestIndexIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestIndexIssues,
- global::TestIndexIssues
- >.DoDelete(row);
-
- public sealed class TestIndexWithoutColumnsIndex()
- : SpacetimeDB.Internal.IndexBase(
- "TestIndexIssues__idx_btree"
- ) { }
-
- public TestIndexWithoutColumnsIndex TestIndexWithoutColumns => new();
-
- public sealed class TestIndexWithEmptyColumnsIndex()
- : SpacetimeDB.Internal.IndexBase(
- "TestIndexIssues__idx_btree"
- ) { }
-
- public TestIndexWithEmptyColumnsIndex TestIndexWithEmptyColumns => new();
-
- public sealed class TestUnknownColumnsIndex()
- : SpacetimeDB.Internal.IndexBase(
- "TestIndexIssues__idx_btree"
- ) { }
-
- public TestUnknownColumnsIndex TestUnknownColumns => new();
-
- public sealed class TestUnexpectedColumnsIndex()
- : SpacetimeDB.Internal.IndexBase(
- "TestIndexIssues_SelfIndexingColumn_idx_btree"
- )
- {
- public IEnumerable Filter(int SelfIndexingColumn) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- SelfIndexingColumn
- )
- );
-
- public ulong Delete(int SelfIndexingColumn) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- SelfIndexingColumn
- )
- );
-
- public IEnumerable Filter(Bound SelfIndexingColumn) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- SelfIndexingColumn
- )
- );
-
- public ulong Delete(Bound SelfIndexingColumn) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- SelfIndexingColumn
- )
- );
- }
+ public ulong Delete(int SelfIndexingColumn) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ SelfIndexingColumn
+ )
+ );
+
+ public IEnumerable Filter(Bound SelfIndexingColumn) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ SelfIndexingColumn
+ )
+ );
- public TestUnexpectedColumnsIndex TestUnexpectedColumns => new();
+ public ulong Delete(Bound SelfIndexingColumn) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ SelfIndexingColumn
+ )
+ );
}
- public readonly struct TestScheduleWithMissingScheduleAtField
- : global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithMissingScheduleAtField,
- global::TestScheduleIssues
- >
+ public TestUnexpectedColumnsIndex TestUnexpectedColumns => new();
+ }
+
+ public readonly struct TestScheduleWithMissingScheduleAtField
+ : global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithMissingScheduleAtField,
+ global::TestScheduleIssues
+ >
+ {
+ static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithMissingScheduleAtField,
+ global::TestScheduleIssues
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
{
- static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ return row;
+ }
+
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithMissingScheduleAtField,
+ global::TestScheduleIssues
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestScheduleWithMissingScheduleAtField),
+ ProductTypeRef: (uint)
+ new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes: [],
+ Constraints: [],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithMissingScheduleAtField,
global::TestScheduleIssues
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
- {
- return row;
- }
+ >.DoCount();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithMissingScheduleAtField,
global::TestScheduleIssues
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestScheduleWithMissingScheduleAtField),
- ProductTypeRef: (uint)
- new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes: [],
- Constraints: [],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ >.DoIter();
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithMissingScheduleAtField,
- global::TestScheduleIssues
- >.DoCount();
+ public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithMissingScheduleAtField,
+ global::TestScheduleIssues
+ >.DoInsert(row);
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithMissingScheduleAtField,
- global::TestScheduleIssues
- >.DoIter();
+ public bool Delete(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithMissingScheduleAtField,
+ global::TestScheduleIssues
+ >.DoDelete(row);
+ }
- public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithMissingScheduleAtField,
- global::TestScheduleIssues
- >.DoInsert(row);
+ public readonly struct TestScheduleWithoutPrimaryKey
+ : global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutPrimaryKey,
+ global::TestScheduleIssues
+ >
+ {
+ static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutPrimaryKey,
+ global::TestScheduleIssues
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
+ {
+ return row;
+ }
- public bool Delete(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithMissingScheduleAtField,
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutPrimaryKey,
+ global::TestScheduleIssues
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestScheduleWithoutPrimaryKey),
+ ProductTypeRef: (uint)
+ new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes: [],
+ Constraints: [],
+ Sequences: [],
+ Schedule: global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutPrimaryKey,
global::TestScheduleIssues
- >.DoDelete(row);
- }
+ >.MakeSchedule("DummyScheduledReducer", 3),
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
- public readonly struct TestScheduleWithoutPrimaryKey
- : global::SpacetimeDB.Internal.ITableView<
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithoutPrimaryKey,
global::TestScheduleIssues
- >
- {
- static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithoutPrimaryKey,
global::TestScheduleIssues
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
- {
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithoutPrimaryKey,
global::TestScheduleIssues
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestScheduleWithoutPrimaryKey),
- ProductTypeRef: (uint)
- new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes: [],
- Constraints: [],
- Sequences: [],
- Schedule: global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutPrimaryKey,
- global::TestScheduleIssues
- >.MakeSchedule("DummyScheduledReducer", 3),
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
-
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutPrimaryKey,
- global::TestScheduleIssues
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutPrimaryKey,
- global::TestScheduleIssues
- >.DoIter();
+ >.DoInsert(row);
- public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutPrimaryKey,
- global::TestScheduleIssues
- >.DoInsert(row);
+ public bool Delete(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutPrimaryKey,
+ global::TestScheduleIssues
+ >.DoDelete(row);
+ }
- public bool Delete(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutPrimaryKey,
- global::TestScheduleIssues
- >.DoDelete(row);
+ public readonly struct TestScheduleWithoutScheduleAt
+ : global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutScheduleAt,
+ global::TestScheduleIssues
+ >
+ {
+ static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutScheduleAt,
+ global::TestScheduleIssues
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
+ {
+ return row;
}
- public readonly struct TestScheduleWithoutScheduleAt
- : global::SpacetimeDB.Internal.ITableView<
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutScheduleAt,
+ global::TestScheduleIssues
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestScheduleWithoutScheduleAt),
+ ProductTypeRef: (uint)
+ new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [1],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "IdCorrectType",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutScheduleAt,
+ global::TestScheduleIssues
+ >.MakeUniqueConstraint(1)
+ ],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithoutScheduleAt,
global::TestScheduleIssues
- >
- {
- static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithoutScheduleAt,
global::TestScheduleIssues
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
- {
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithoutScheduleAt,
global::TestScheduleIssues
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestScheduleWithoutScheduleAt),
- ProductTypeRef: (uint)
- new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [1],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "IdCorrectType",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutScheduleAt,
- global::TestScheduleIssues
- >.MakeUniqueConstraint(1)
- ],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
-
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutScheduleAt,
- global::TestScheduleIssues
- >.DoCount();
+ >.DoInsert(row);
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutScheduleAt,
- global::TestScheduleIssues
- >.DoIter();
+ public bool Delete(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithoutScheduleAt,
+ global::TestScheduleIssues
+ >.DoDelete(row);
- public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutScheduleAt,
- global::TestScheduleIssues
- >.DoInsert(row);
+ public sealed class IdCorrectTypeUniqueIndex
+ : UniqueIndex<
+ TestScheduleWithoutScheduleAt,
+ global::TestScheduleIssues,
+ int,
+ SpacetimeDB.BSATN.I32
+ >
+ {
+ internal IdCorrectTypeUniqueIndex()
+ : base("TestScheduleWithoutScheduleAt_IdCorrectType_idx_btree") { }
- public bool Delete(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithoutScheduleAt,
- global::TestScheduleIssues
- >.DoDelete(row);
-
- public sealed class IdCorrectTypeUniqueIndex
- : UniqueIndex<
- TestScheduleWithoutScheduleAt,
- global::TestScheduleIssues,
- int,
- SpacetimeDB.BSATN.I32
- >
- {
- internal IdCorrectTypeUniqueIndex()
- : base("TestScheduleWithoutScheduleAt_IdCorrectType_idx_btree") { }
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::TestScheduleIssues? Find(int key) =>
+ DoFilter(key).Cast().SingleOrDefault();
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::TestScheduleIssues? Find(int key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public global::TestScheduleIssues Update(global::TestScheduleIssues row) =>
+ DoUpdate(row);
+ }
- public global::TestScheduleIssues Update(global::TestScheduleIssues row) =>
- DoUpdate(row);
- }
+ public IdCorrectTypeUniqueIndex IdCorrectType => new();
+ }
- public IdCorrectTypeUniqueIndex IdCorrectType => new();
+ public readonly struct TestScheduleWithWrongPrimaryKeyType
+ : global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongPrimaryKeyType,
+ global::TestScheduleIssues
+ >
+ {
+ static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongPrimaryKeyType,
+ global::TestScheduleIssues
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
+ {
+ return row;
}
- public readonly struct TestScheduleWithWrongPrimaryKeyType
- : global::SpacetimeDB.Internal.ITableView<
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongPrimaryKeyType,
+ global::TestScheduleIssues
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestScheduleWithWrongPrimaryKeyType),
+ ProductTypeRef: (uint)
+ new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [0],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "IdWrongType",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongPrimaryKeyType,
+ global::TestScheduleIssues
+ >.MakeUniqueConstraint(0)
+ ],
+ Sequences: [],
+ Schedule: global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongPrimaryKeyType,
+ global::TestScheduleIssues
+ >.MakeSchedule("DummyScheduledReducer", 3),
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithWrongPrimaryKeyType,
global::TestScheduleIssues
- >
- {
- static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithWrongPrimaryKeyType,
global::TestScheduleIssues
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
- {
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithWrongPrimaryKeyType,
global::TestScheduleIssues
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestScheduleWithWrongPrimaryKeyType),
- ProductTypeRef: (uint)
- new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [0],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "IdWrongType",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongPrimaryKeyType,
- global::TestScheduleIssues
- >.MakeUniqueConstraint(0)
- ],
- Sequences: [],
- Schedule: global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongPrimaryKeyType,
- global::TestScheduleIssues
- >.MakeSchedule("DummyScheduledReducer", 3),
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
-
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongPrimaryKeyType,
- global::TestScheduleIssues
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongPrimaryKeyType,
- global::TestScheduleIssues
- >.DoIter();
+ >.DoInsert(row);
- public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongPrimaryKeyType,
- global::TestScheduleIssues
- >.DoInsert(row);
+ public bool Delete(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongPrimaryKeyType,
+ global::TestScheduleIssues
+ >.DoDelete(row);
- public bool Delete(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongPrimaryKeyType,
- global::TestScheduleIssues
- >.DoDelete(row);
+ public sealed class IdWrongTypeUniqueIndex
+ : UniqueIndex<
+ TestScheduleWithWrongPrimaryKeyType,
+ global::TestScheduleIssues,
+ string,
+ SpacetimeDB.BSATN.String
+ >
+ {
+ internal IdWrongTypeUniqueIndex()
+ : base("TestScheduleWithWrongPrimaryKeyType_IdWrongType_idx_btree") { }
- public sealed class IdWrongTypeUniqueIndex
- : UniqueIndex<
- TestScheduleWithWrongPrimaryKeyType,
- global::TestScheduleIssues,
- string,
- SpacetimeDB.BSATN.String
- >
- {
- internal IdWrongTypeUniqueIndex()
- : base("TestScheduleWithWrongPrimaryKeyType_IdWrongType_idx_btree") { }
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::TestScheduleIssues? Find(string key) =>
+ DoFilter(key).Cast().SingleOrDefault();
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::TestScheduleIssues? Find(string key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public global::TestScheduleIssues Update(global::TestScheduleIssues row) =>
+ DoUpdate(row);
+ }
- public global::TestScheduleIssues Update(global::TestScheduleIssues row) =>
- DoUpdate(row);
- }
+ public IdWrongTypeUniqueIndex IdWrongType => new();
+ }
- public IdWrongTypeUniqueIndex IdWrongType => new();
+ public readonly struct TestScheduleWithWrongScheduleAtType
+ : global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongScheduleAtType,
+ global::TestScheduleIssues
+ >
+ {
+ static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongScheduleAtType,
+ global::TestScheduleIssues
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
+ {
+ return row;
}
- public readonly struct TestScheduleWithWrongScheduleAtType
- : global::SpacetimeDB.Internal.ITableView<
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongScheduleAtType,
+ global::TestScheduleIssues
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestScheduleWithWrongScheduleAtType),
+ ProductTypeRef: (uint)
+ new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [1],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "IdCorrectType",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongScheduleAtType,
+ global::TestScheduleIssues
+ >.MakeUniqueConstraint(1)
+ ],
+ Sequences: [],
+ Schedule: global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongScheduleAtType,
+ global::TestScheduleIssues
+ >.MakeSchedule("DummyScheduledReducer", 2),
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithWrongScheduleAtType,
global::TestScheduleIssues
- >
- {
- static global::TestScheduleIssues global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithWrongScheduleAtType,
global::TestScheduleIssues
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestScheduleIssues row)
- {
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestScheduleWithWrongScheduleAtType,
global::TestScheduleIssues
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestScheduleWithWrongScheduleAtType),
- ProductTypeRef: (uint)
- new global::TestScheduleIssues.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [1],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "IdCorrectType",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongScheduleAtType,
- global::TestScheduleIssues
- >.MakeUniqueConstraint(1)
- ],
- Sequences: [],
- Schedule: global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongScheduleAtType,
- global::TestScheduleIssues
- >.MakeSchedule("DummyScheduledReducer", 2),
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
-
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongScheduleAtType,
- global::TestScheduleIssues
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongScheduleAtType,
- global::TestScheduleIssues
- >.DoIter();
+ >.DoInsert(row);
- public global::TestScheduleIssues Insert(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongScheduleAtType,
- global::TestScheduleIssues
- >.DoInsert(row);
+ public bool Delete(global::TestScheduleIssues row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestScheduleWithWrongScheduleAtType,
+ global::TestScheduleIssues
+ >.DoDelete(row);
- public bool Delete(global::TestScheduleIssues row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestScheduleWithWrongScheduleAtType,
- global::TestScheduleIssues
- >.DoDelete(row);
+ public sealed class IdCorrectTypeUniqueIndex
+ : UniqueIndex<
+ TestScheduleWithWrongScheduleAtType,
+ global::TestScheduleIssues,
+ int,
+ SpacetimeDB.BSATN.I32
+ >
+ {
+ internal IdCorrectTypeUniqueIndex()
+ : base("TestScheduleWithWrongScheduleAtType_IdCorrectType_idx_btree") { }
- public sealed class IdCorrectTypeUniqueIndex
- : UniqueIndex<
- TestScheduleWithWrongScheduleAtType,
- global::TestScheduleIssues,
- int,
- SpacetimeDB.BSATN.I32
- >
- {
- internal IdCorrectTypeUniqueIndex()
- : base("TestScheduleWithWrongScheduleAtType_IdCorrectType_idx_btree") { }
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::TestScheduleIssues? Find(int key) =>
+ DoFilter(key).Cast().SingleOrDefault();
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::TestScheduleIssues? Find(int key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public global::TestScheduleIssues Update(global::TestScheduleIssues row) =>
+ DoUpdate(row);
+ }
- public global::TestScheduleIssues Update(global::TestScheduleIssues row) =>
- DoUpdate(row);
- }
+ public IdCorrectTypeUniqueIndex IdCorrectType => new();
+ }
- public IdCorrectTypeUniqueIndex IdCorrectType => new();
+ public readonly struct TestUniqueNotEquatable
+ : global::SpacetimeDB.Internal.ITableView<
+ TestUniqueNotEquatable,
+ global::TestUniqueNotEquatable
+ >
+ {
+ static global::TestUniqueNotEquatable global::SpacetimeDB.Internal.ITableView<
+ TestUniqueNotEquatable,
+ global::TestUniqueNotEquatable
+ >.ReadGenFields(System.IO.BinaryReader reader, global::TestUniqueNotEquatable row)
+ {
+ return row;
}
- public readonly struct TestUniqueNotEquatable
- : global::SpacetimeDB.Internal.ITableView<
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ TestUniqueNotEquatable,
+ global::TestUniqueNotEquatable
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(TestUniqueNotEquatable),
+ ProductTypeRef: (uint)
+ new global::TestUniqueNotEquatable.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [1],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "UniqueField",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ ),
+ new(
+ Name: null,
+ AccessorName: "PrimaryKeyField",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ TestUniqueNotEquatable,
+ global::TestUniqueNotEquatable
+ >.MakeUniqueConstraint(0),
+ global::SpacetimeDB.Internal.ITableView<
+ TestUniqueNotEquatable,
+ global::TestUniqueNotEquatable
+ >.MakeUniqueConstraint(1)
+ ],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
TestUniqueNotEquatable,
global::TestUniqueNotEquatable
- >
- {
- static global::TestUniqueNotEquatable global::SpacetimeDB.Internal.ITableView<
+ >.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
TestUniqueNotEquatable,
global::TestUniqueNotEquatable
- >.ReadGenFields(System.IO.BinaryReader reader, global::TestUniqueNotEquatable row)
- {
- return row;
- }
+ >.DoIter();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public global::TestUniqueNotEquatable Insert(global::TestUniqueNotEquatable row) =>
+ global::SpacetimeDB.Internal.ITableView<
TestUniqueNotEquatable,
global::TestUniqueNotEquatable
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(TestUniqueNotEquatable),
- ProductTypeRef: (uint)
- new global::TestUniqueNotEquatable.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [1],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "UniqueField",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- ),
- new(
- Name: null,
- AccessorName: "PrimaryKeyField",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- TestUniqueNotEquatable,
- global::TestUniqueNotEquatable
- >.MakeUniqueConstraint(0),
- global::SpacetimeDB.Internal.ITableView<
- TestUniqueNotEquatable,
- global::TestUniqueNotEquatable
- >.MakeUniqueConstraint(1)
- ],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ >.DoInsert(row);
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- TestUniqueNotEquatable,
- global::TestUniqueNotEquatable
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- TestUniqueNotEquatable,
- global::TestUniqueNotEquatable
- >.DoIter();
-
- public global::TestUniqueNotEquatable Insert(global::TestUniqueNotEquatable row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestUniqueNotEquatable,
- global::TestUniqueNotEquatable
- >.DoInsert(row);
-
- public bool Delete(global::TestUniqueNotEquatable row) =>
- global::SpacetimeDB.Internal.ITableView<
- TestUniqueNotEquatable,
- global::TestUniqueNotEquatable
- >.DoDelete(row);
-
- public sealed class PrimaryKeyFieldUniqueIndex
- : UniqueIndex<
- TestUniqueNotEquatable,
- global::TestUniqueNotEquatable,
- TestEnumWithExplicitValues,
- SpacetimeDB.BSATN.Enum
- >
- {
- internal PrimaryKeyFieldUniqueIndex()
- : base("TestUniqueNotEquatable_PrimaryKeyField_idx_btree") { }
+ public bool Delete(global::TestUniqueNotEquatable row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ TestUniqueNotEquatable,
+ global::TestUniqueNotEquatable
+ >.DoDelete(row);
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::TestUniqueNotEquatable? Find(TestEnumWithExplicitValues key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public sealed class PrimaryKeyFieldUniqueIndex
+ : UniqueIndex<
+ TestUniqueNotEquatable,
+ global::TestUniqueNotEquatable,
+ TestEnumWithExplicitValues,
+ SpacetimeDB.BSATN.Enum
+ >
+ {
+ internal PrimaryKeyFieldUniqueIndex()
+ : base("TestUniqueNotEquatable_PrimaryKeyField_idx_btree") { }
- public global::TestUniqueNotEquatable Update(global::TestUniqueNotEquatable row) =>
- DoUpdate(row);
- }
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::TestUniqueNotEquatable? Find(TestEnumWithExplicitValues key) =>
+ DoFilter(key).Cast().SingleOrDefault();
- public PrimaryKeyFieldUniqueIndex PrimaryKeyField => new();
+ public global::TestUniqueNotEquatable Update(global::TestUniqueNotEquatable row) =>
+ DoUpdate(row);
}
- }
- public sealed class Local
- {
- public global::SpacetimeDB.Internal.TableHandles.Player Player => new();
- public global::SpacetimeDB.Internal.TableHandles.TestAutoIncNotInteger TestAutoIncNotInteger =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestDefaultFieldValues TestDefaultFieldValues =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestDuplicateTableName TestDuplicateTableName =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestIndexIssues TestIndexIssues => new();
- public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithMissingScheduleAtField TestScheduleWithMissingScheduleAtField =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithoutPrimaryKey TestScheduleWithoutPrimaryKey =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithoutScheduleAt TestScheduleWithoutScheduleAt =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithWrongPrimaryKeyType TestScheduleWithWrongPrimaryKeyType =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestScheduleWithWrongScheduleAtType TestScheduleWithWrongScheduleAtType =>
- new();
- public global::SpacetimeDB.Internal.TableHandles.TestUniqueNotEquatable TestUniqueNotEquatable =>
- new();
+ public PrimaryKeyFieldUniqueIndex PrimaryKeyField => new();
}
}
@@ -2254,4 +2266,5 @@ SpacetimeDB.Internal.BytesSink sink
#endif
}
+#pragma warning restore STDB_UNSTABLE
#pragma warning restore CS0436
diff --git a/crates/bindings-csharp/Codegen.Tests/fixtures/server/snapshots/Module#FFI.verified.cs b/crates/bindings-csharp/Codegen.Tests/fixtures/server/snapshots/Module#FFI.verified.cs
index c69d4a151d3..ff0cd7c9923 100644
--- a/crates/bindings-csharp/Codegen.Tests/fixtures/server/snapshots/Module#FFI.verified.cs
+++ b/crates/bindings-csharp/Codegen.Tests/fixtures/server/snapshots/Module#FFI.verified.cs
@@ -5,10 +5,13 @@
// This is needed so every module build doesn't generate a full LocalReadOnly type, but just adds on to the existing.
// We extend it here with generated table accessors, and just need to suppress the duplicate-type warning.
#pragma warning disable CS0436
+#pragma warning disable STDB_UNSTABLE
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+using Internal = SpacetimeDB.Internal;
+using TxContext = SpacetimeDB.Internal.TxContext;
namespace SpacetimeDB
{
@@ -27,27 +30,21 @@ internal ReducerContext(
Identity identity,
ConnectionId? connectionId,
Random random,
- Timestamp time
+ Timestamp time,
+ AuthCtx? senderAuth = null
)
{
Sender = identity;
ConnectionId = connectionId;
Rng = random;
Timestamp = time;
- SenderAuth = AuthCtx.BuildFromSystemTables(connectionId, identity);
+ SenderAuth = senderAuth ?? AuthCtx.BuildFromSystemTables(connectionId, identity);
}
}
- public sealed record ProcedureContext : Internal.IProcedureContext
+ public sealed partial class ProcedureContext : global::SpacetimeDB.ProcedureContextBase
{
- public readonly Identity Sender;
- public readonly ConnectionId? ConnectionId;
- public readonly Random Rng;
- public readonly Timestamp Timestamp;
- public readonly AuthCtx SenderAuth;
-
- // We need this property to be non-static for parity with client SDK.
- public Identity Identity => Internal.IProcedureContext.GetIdentity();
+ private readonly Local _db = new();
internal ProcedureContext(
Identity identity,
@@ -55,13 +52,51 @@ internal ProcedureContext(
Random random,
Timestamp time
)
- {
- Sender = identity;
- ConnectionId = connectionId;
- Rng = random;
- Timestamp = time;
- SenderAuth = AuthCtx.BuildFromSystemTables(connectionId, identity);
- }
+ : base(identity, connectionId, random, time) { }
+
+ protected override global::SpacetimeDB.LocalBase CreateLocal() => _db;
+
+ protected override global::SpacetimeDB.ProcedureTxContextBase CreateTxContext(
+ Internal.TxContext inner
+ ) => _cached ??= new ProcedureTxContext(inner);
+
+ private ProcedureTxContext? _cached;
+
+ [Experimental("STDB_UNSTABLE")]
+ public Local Db => _db;
+
+ [Experimental("STDB_UNSTABLE")]
+ public TResult WithTx(Func body) =>
+ base.WithTx(tx => body((ProcedureTxContext)tx));
+
+ [Experimental("STDB_UNSTABLE")]
+ public TxOutcome TryWithTx(
+ Func> body
+ )
+ where TError : Exception => base.TryWithTx(tx => body((ProcedureTxContext)tx));
+ }
+
+ [Experimental("STDB_UNSTABLE")]
+ public sealed class ProcedureTxContext : global::SpacetimeDB.ProcedureTxContextBase
+ {
+ internal ProcedureTxContext(Internal.TxContext inner)
+ : base(inner) { }
+
+ public new Local Db => (Local)base.Db;
+ }
+
+ public sealed class Local : global::SpacetimeDB.LocalBase
+ {
+ internal global::SpacetimeDB.Internal.TableHandles.BTreeMultiColumn BTreeMultiColumn =>
+ new();
+ internal global::SpacetimeDB.Internal.TableHandles.BTreeViews BTreeViews => new();
+ public global::SpacetimeDB.Internal.TableHandles.MultiTable1 MultiTable1 => new();
+ public global::SpacetimeDB.Internal.TableHandles.MultiTable2 MultiTable2 => new();
+ public global::SpacetimeDB.Internal.TableHandles.PrivateTable PrivateTable => new();
+ public global::SpacetimeDB.Internal.TableHandles.PublicTable PublicTable => new();
+ internal global::SpacetimeDB.Internal.TableHandles.RegressionMultipleUniqueIndexesHadSameName RegressionMultipleUniqueIndexesHadSameName =>
+ new();
+ public global::SpacetimeDB.Internal.TableHandles.SendMessageTimer SendMessageTimer => new();
}
public sealed record ViewContext : DbContext, Internal.IViewContext
@@ -82,1002 +117,930 @@ public sealed record AnonymousViewContext
internal AnonymousViewContext(Internal.LocalReadOnly db)
: base(db) { }
}
+}
- namespace Internal.TableHandles
+namespace SpacetimeDB.Internal.TableHandles
+{
+ internal readonly struct BTreeMultiColumn
+ : global::SpacetimeDB.Internal.ITableView
{
- internal readonly struct BTreeMultiColumn
- : global::SpacetimeDB.Internal.ITableView
+ static global::BTreeMultiColumn global::SpacetimeDB.Internal.ITableView<
+ BTreeMultiColumn,
+ global::BTreeMultiColumn
+ >.ReadGenFields(System.IO.BinaryReader reader, global::BTreeMultiColumn row)
{
- static global::BTreeMultiColumn global::SpacetimeDB.Internal.ITableView<
+ return row;
+ }
+
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ BTreeMultiColumn,
+ global::BTreeMultiColumn
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(BTreeMultiColumn),
+ ProductTypeRef: (uint)
+ new global::BTreeMultiColumn.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "Location",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0, 1, 2])
+ )
+ ],
+ Constraints: [],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView<
BTreeMultiColumn,
global::BTreeMultiColumn
- >.ReadGenFields(System.IO.BinaryReader reader, global::BTreeMultiColumn row)
- {
- return row;
- }
+ >.DoCount();
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView<
BTreeMultiColumn,
global::BTreeMultiColumn
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(BTreeMultiColumn),
- ProductTypeRef: (uint)
- new global::BTreeMultiColumn.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "Location",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0, 1, 2])
- )
- ],
- Constraints: [],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ >.DoIter();
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- BTreeMultiColumn,
- global::BTreeMultiColumn
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- BTreeMultiColumn,
- global::BTreeMultiColumn
- >.DoIter();
-
- public global::BTreeMultiColumn Insert(global::BTreeMultiColumn row) =>
- global::SpacetimeDB.Internal.ITableView<
- BTreeMultiColumn,
- global::BTreeMultiColumn
- >.DoInsert(row);
-
- public bool Delete(global::BTreeMultiColumn row) =>
- global::SpacetimeDB.Internal.ITableView<
- BTreeMultiColumn,
- global::BTreeMultiColumn
- >.DoDelete(row);
-
- internal sealed class LocationIndex()
- : SpacetimeDB.Internal.IndexBase(
- "BTreeMultiColumn_X_Y_Z_idx_btree"
- )
- {
- public IEnumerable Filter(uint X) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public ulong Delete(uint X) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public IEnumerable Filter(Bound X) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public ulong Delete(Bound X) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public IEnumerable Filter((uint X, uint Y) f) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public ulong Delete((uint X, uint Y) f) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public IEnumerable Filter((uint X, Bound Y) f) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public ulong Delete((uint X, Bound Y) f) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public IEnumerable Filter((uint X, uint Y, uint Z) f) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public ulong Delete((uint X, uint Y, uint Z) f) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public IEnumerable Filter(
- (uint X, uint Y, Bound Z) f
- ) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public ulong Delete((uint X, uint Y, Bound Z) f) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
- }
+ public global::BTreeMultiColumn Insert(global::BTreeMultiColumn row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ BTreeMultiColumn,
+ global::BTreeMultiColumn
+ >.DoInsert(row);
- internal LocationIndex Location => new();
- }
+ public bool Delete(global::BTreeMultiColumn row) =>
+ global::SpacetimeDB.Internal.ITableView<
+ BTreeMultiColumn,
+ global::BTreeMultiColumn
+ >.DoDelete(row);
- internal readonly struct BTreeViews
- : global::SpacetimeDB.Internal.ITableView
+ internal sealed class LocationIndex()
+ : SpacetimeDB.Internal.IndexBase(
+ "BTreeMultiColumn_X_Y_Z_idx_btree"
+ )
{
- static global::BTreeViews global::SpacetimeDB.Internal.ITableView<
- BTreeViews,
- global::BTreeViews
- >.ReadGenFields(System.IO.BinaryReader reader, global::BTreeViews row)
- {
- return row;
- }
+ public IEnumerable Filter(uint X) =>
+ DoFilter(new SpacetimeDB.Internal.BTreeIndexBounds(X));
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
- BTreeViews,
- global::BTreeViews
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(BTreeViews),
- ProductTypeRef: (uint)
- new global::BTreeViews.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [0],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "Id",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- ),
- new(
- Name: null,
- AccessorName: "Location",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1, 2])
- ),
- new(
- Name: null,
- AccessorName: "Faction",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([3])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- BTreeViews,
- global::BTreeViews
- >.MakeUniqueConstraint(0)
- ],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ public ulong Delete(uint X) =>
+ DoDelete(new SpacetimeDB.Internal.BTreeIndexBounds(X));
+
+ public IEnumerable Filter(Bound X) =>
+ DoFilter(new SpacetimeDB.Internal.BTreeIndexBounds(X));
+
+ public ulong Delete(Bound X) =>
+ DoDelete(new SpacetimeDB.Internal.BTreeIndexBounds(X));
+
+ public IEnumerable Filter((uint X, uint Y) f) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
);
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView.DoCount();
+ public ulong Delete((uint X, uint Y) f) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView.DoIter();
+ public IEnumerable Filter((uint X, Bound Y) f) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
- public global::BTreeViews Insert(global::BTreeViews row) =>
- global::SpacetimeDB.Internal.ITableView.DoInsert(
- row
+ public ulong Delete((uint X, Bound Y) f) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
);
- public bool Delete(global::BTreeViews row) =>
- global::SpacetimeDB.Internal.ITableView.DoDelete(
- row
+ public IEnumerable Filter((uint X, uint Y, uint Z) f) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
);
- internal sealed class IdUniqueIndex
- : UniqueIndex<
- BTreeViews,
- global::BTreeViews,
- SpacetimeDB.Identity,
- SpacetimeDB.Identity.BSATN
- >
- {
- internal IdUniqueIndex()
- : base("BTreeViews_Id_idx_btree") { }
+ public ulong Delete((uint X, uint Y, uint Z) f) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::BTreeViews? Find(SpacetimeDB.Identity key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public IEnumerable Filter(
+ (uint X, uint Y, Bound Z) f
+ ) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
- public global::BTreeViews Update(global::BTreeViews row) => DoUpdate(row);
- }
+ public ulong Delete((uint X, uint Y, Bound Z) f) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
+ }
- internal IdUniqueIndex Id => new();
+ internal LocationIndex Location => new();
+ }
- internal sealed class LocationIndex()
- : SpacetimeDB.Internal.IndexBase("BTreeViews_X_Y_idx_btree")
- {
- public IEnumerable Filter(uint X) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public ulong Delete(uint X) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public IEnumerable Filter(Bound X) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public ulong Delete(Bound X) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(X)
- );
-
- public IEnumerable Filter((uint X, uint Y) f) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public ulong Delete((uint X, uint Y) f) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public IEnumerable Filter((uint X, Bound Y) f) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
-
- public ulong Delete((uint X, Bound Y) f) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds<
- uint,
- SpacetimeDB.BSATN.U32,
- uint,
- SpacetimeDB.BSATN.U32
- >(f)
- );
- }
+ internal readonly struct BTreeViews
+ : global::SpacetimeDB.Internal.ITableView
+ {
+ static global::BTreeViews global::SpacetimeDB.Internal.ITableView<
+ BTreeViews,
+ global::BTreeViews
+ >.ReadGenFields(System.IO.BinaryReader reader, global::BTreeViews row)
+ {
+ return row;
+ }
- internal LocationIndex Location => new();
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ BTreeViews,
+ global::BTreeViews
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(BTreeViews),
+ ProductTypeRef: (uint)
+ new global::BTreeViews.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [0],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "Id",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ ),
+ new(
+ Name: null,
+ AccessorName: "Location",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1, 2])
+ ),
+ new(
+ Name: null,
+ AccessorName: "Faction",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([3])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ BTreeViews,
+ global::BTreeViews
+ >.MakeUniqueConstraint(0)
+ ],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
- internal sealed class FactionIndex()
- : SpacetimeDB.Internal.IndexBase("BTreeViews_Faction_idx_btree")
- {
- public IEnumerable Filter(string Faction) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Faction
- )
- );
-
- public ulong Delete(string Faction) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Faction
- )
- );
-
- public IEnumerable Filter(Bound Faction) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Faction
- )
- );
-
- public ulong Delete(Bound Faction) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Faction
- )
- );
- }
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView.DoIter();
+
+ public global::BTreeViews Insert(global::BTreeViews row) =>
+ global::SpacetimeDB.Internal.ITableView.DoInsert(row);
+
+ public bool Delete(global::BTreeViews row) =>
+ global::SpacetimeDB.Internal.ITableView.DoDelete(row);
+
+ internal sealed class IdUniqueIndex
+ : UniqueIndex<
+ BTreeViews,
+ global::BTreeViews,
+ SpacetimeDB.Identity,
+ SpacetimeDB.Identity.BSATN
+ >
+ {
+ internal IdUniqueIndex()
+ : base("BTreeViews_Id_idx_btree") { }
- internal FactionIndex Faction => new();
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::BTreeViews? Find(SpacetimeDB.Identity key) =>
+ DoFilter(key).Cast().SingleOrDefault();
+
+ public global::BTreeViews Update(global::BTreeViews row) => DoUpdate(row);
}
- public readonly struct MultiTable1
- : global::SpacetimeDB.Internal.ITableView
+ internal IdUniqueIndex Id => new();
+
+ internal sealed class LocationIndex()
+ : SpacetimeDB.Internal.IndexBase("BTreeViews_X_Y_idx_btree")
{
- static global::MultiTableRow global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.ReadGenFields(System.IO.BinaryReader reader, global::MultiTableRow row)
- {
- if (row.Foo == default)
- {
- row.Foo = global::MultiTableRow.BSATN.FooRW.Read(reader);
- }
- return row;
- }
+ public IEnumerable Filter(uint X) =>
+ DoFilter(new SpacetimeDB.Internal.BTreeIndexBounds(X));
+
+ public ulong Delete(uint X) =>
+ DoDelete(new SpacetimeDB.Internal.BTreeIndexBounds(X));
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(MultiTable1),
- ProductTypeRef: (uint)
- new global::MultiTableRow.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [1],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "Foo",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
- ),
- new(
- Name: null,
- AccessorName: "Name",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.MakeUniqueConstraint(1)
- ],
- Sequences:
- [
- global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.MakeSequence(1)
- ],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Public
+ public IEnumerable Filter(Bound X) =>
+ DoFilter(new SpacetimeDB.Internal.BTreeIndexBounds(X));
+
+ public ulong Delete(Bound X) =>
+ DoDelete(new SpacetimeDB.Internal.BTreeIndexBounds(X));
+
+ public IEnumerable Filter((uint X, uint Y) f) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
);
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.DoIter();
-
- public global::MultiTableRow Insert(global::MultiTableRow row) =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.DoInsert(row);
-
- public bool Delete(global::MultiTableRow row) =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable1,
- global::MultiTableRow
- >.DoDelete(row);
-
- public sealed class FooUniqueIndex
- : UniqueIndex
- {
- internal FooUniqueIndex()
- : base("MultiTable1_Foo_idx_btree") { }
+ public ulong Delete((uint X, uint Y) f) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::MultiTableRow? Find(uint key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public IEnumerable Filter((uint X, Bound Y) f) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
- public global::MultiTableRow Update(global::MultiTableRow row) => DoUpdate(row);
- }
+ public ulong Delete((uint X, Bound Y) f) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds<
+ uint,
+ SpacetimeDB.BSATN.U32,
+ uint,
+ SpacetimeDB.BSATN.U32
+ >(f)
+ );
+ }
- public FooUniqueIndex Foo => new();
+ internal LocationIndex Location => new();
- public sealed class NameIndex()
- : SpacetimeDB.Internal.IndexBase(
- "MultiTable1_Name_idx_btree"
- )
- {
- public IEnumerable Filter(string Name) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Name
- )
- );
-
- public ulong Delete(string Name) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Name
- )
- );
-
- public IEnumerable Filter(Bound Name) =>
- DoFilter(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Name
- )
- );
-
- public ulong Delete(Bound Name) =>
- DoDelete(
- new SpacetimeDB.Internal.BTreeIndexBounds(
- Name
- )
- );
- }
+ internal sealed class FactionIndex()
+ : SpacetimeDB.Internal.IndexBase("BTreeViews_Faction_idx_btree")
+ {
+ public IEnumerable Filter(string Faction) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Faction
+ )
+ );
- public NameIndex Name => new();
+ public ulong Delete(string Faction) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Faction
+ )
+ );
+
+ public IEnumerable Filter(Bound Faction) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Faction
+ )
+ );
+
+ public ulong Delete(Bound Faction) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Faction
+ )
+ );
}
- public readonly struct MultiTable2
- : global::SpacetimeDB.Internal.ITableView
+ internal FactionIndex Faction => new();
+ }
+
+ public readonly struct MultiTable1
+ : global::SpacetimeDB.Internal.ITableView
+ {
+ static global::MultiTableRow global::SpacetimeDB.Internal.ITableView<
+ MultiTable1,
+ global::MultiTableRow
+ >.ReadGenFields(System.IO.BinaryReader reader, global::MultiTableRow row)
{
- static global::MultiTableRow global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.ReadGenFields(System.IO.BinaryReader reader, global::MultiTableRow row)
+ if (row.Foo == default)
{
- if (row.Foo == default)
- {
- row.Foo = global::MultiTableRow.BSATN.FooRW.Read(reader);
- }
- return row;
+ row.Foo = global::MultiTableRow.BSATN.FooRW.Read(reader);
}
+ return row;
+ }
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(MultiTable2),
- ProductTypeRef: (uint)
- new global::MultiTableRow.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "Bar",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([2])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.MakeUniqueConstraint(2)
- ],
- Sequences:
- [
- global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.MakeSequence(1)
- ],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
- );
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ MultiTable1,
+ global::MultiTableRow
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(MultiTable1),
+ ProductTypeRef: (uint)
+ new global::MultiTableRow.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [1],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "Foo",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([1])
+ ),
+ new(
+ Name: null,
+ AccessorName: "Name",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ MultiTable1,
+ global::MultiTableRow
+ >.MakeUniqueConstraint(1)
+ ],
+ Sequences:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ MultiTable1,
+ global::MultiTableRow
+ >.MakeSequence(1)
+ ],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Public
+ );
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.DoIter();
-
- public global::MultiTableRow Insert(global::MultiTableRow row) =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.DoInsert(row);
-
- public bool Delete(global::MultiTableRow row) =>
- global::SpacetimeDB.Internal.ITableView<
- MultiTable2,
- global::MultiTableRow
- >.DoDelete(row);
-
- public sealed class BarUniqueIndex
- : UniqueIndex
- {
- internal BarUniqueIndex()
- : base("MultiTable2_Bar_idx_btree") { }
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView.DoCount();
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::MultiTableRow? Find(uint key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView.DoIter();
- public global::MultiTableRow Update(global::MultiTableRow row) => DoUpdate(row);
- }
+ public global::MultiTableRow Insert(global::MultiTableRow row) =>
+ global::SpacetimeDB.Internal.ITableView.DoInsert(
+ row
+ );
+
+ public bool Delete(global::MultiTableRow row) =>
+ global::SpacetimeDB.Internal.ITableView.DoDelete(
+ row
+ );
- public BarUniqueIndex Bar => new();
+ public sealed class FooUniqueIndex
+ : UniqueIndex
+ {
+ internal FooUniqueIndex()
+ : base("MultiTable1_Foo_idx_btree") { }
+
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::MultiTableRow? Find(uint key) =>
+ DoFilter(key).Cast().SingleOrDefault();
+
+ public global::MultiTableRow Update(global::MultiTableRow row) => DoUpdate(row);
}
- public readonly struct PrivateTable
- : global::SpacetimeDB.Internal.ITableView
+ public FooUniqueIndex Foo => new();
+
+ public sealed class NameIndex()
+ : SpacetimeDB.Internal.IndexBase("MultiTable1_Name_idx_btree")
{
- static global::PrivateTable global::SpacetimeDB.Internal.ITableView<
- PrivateTable,
- global::PrivateTable
- >.ReadGenFields(System.IO.BinaryReader reader, global::PrivateTable row)
- {
- return row;
- }
+ public IEnumerable Filter(string Name) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Name
+ )
+ );
+
+ public ulong Delete(string Name) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Name
+ )
+ );
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
- PrivateTable,
- global::PrivateTable
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(PrivateTable),
- ProductTypeRef: (uint)
- new global::PrivateTable.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [],
- Indexes: [],
- Constraints: [],
- Sequences: [],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ public IEnumerable Filter(Bound Name) =>
+ DoFilter(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Name
+ )
);
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView<
- PrivateTable,
- global::PrivateTable
- >.DoCount();
-
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView<
- PrivateTable,
- global::PrivateTable
- >.DoIter();
-
- public global::PrivateTable Insert(global::PrivateTable row) =>
- global::SpacetimeDB.Internal.ITableView<
- PrivateTable,
- global::PrivateTable
- >.DoInsert(row);
-
- public bool Delete(global::PrivateTable row) =>
- global::SpacetimeDB.Internal.ITableView<
- PrivateTable,
- global::PrivateTable
- >.DoDelete(row);
+ public ulong Delete(Bound Name) =>
+ DoDelete(
+ new SpacetimeDB.Internal.BTreeIndexBounds(
+ Name
+ )
+ );
}
- public readonly struct PublicTable
- : global::SpacetimeDB.Internal.ITableView
+ public NameIndex Name => new();
+ }
+
+ public readonly struct MultiTable2
+ : global::SpacetimeDB.Internal.ITableView
+ {
+ static global::MultiTableRow global::SpacetimeDB.Internal.ITableView<
+ MultiTable2,
+ global::MultiTableRow
+ >.ReadGenFields(System.IO.BinaryReader reader, global::MultiTableRow row)
{
- static global::PublicTable global::SpacetimeDB.Internal.ITableView<
- PublicTable,
- global::PublicTable
- >.ReadGenFields(System.IO.BinaryReader reader, global::PublicTable row)
+ if (row.Foo == default)
{
- if (row.Id == default)
- {
- row.Id = global::PublicTable.BSATN.IdRW.Read(reader);
- }
- return row;
+ row.Foo = global::MultiTableRow.BSATN.FooRW.Read(reader);
}
+ return row;
+ }
- static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
- PublicTable,
- global::PublicTable
- >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
- new(
- Name: nameof(PublicTable),
- ProductTypeRef: (uint)
- new global::PublicTable.BSATN().GetAlgebraicType(registrar).Ref_,
- PrimaryKey: [0],
- Indexes:
- [
- new(
- Name: null,
- AccessorName: "Id",
- Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
- )
- ],
- Constraints:
- [
- global::SpacetimeDB.Internal.ITableView<
- PublicTable,
- global::PublicTable
- >.MakeUniqueConstraint(0)
- ],
- Sequences:
- [
- global::SpacetimeDB.Internal.ITableView<
- PublicTable,
- global::PublicTable
- >.MakeSequence(0)
- ],
- Schedule: null,
- TableType: SpacetimeDB.Internal.TableType.User,
- TableAccess: SpacetimeDB.Internal.TableAccess.Public
- );
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ MultiTable2,
+ global::MultiTableRow
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(MultiTable2),
+ ProductTypeRef: (uint)
+ new global::MultiTableRow.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "Bar",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([2])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ MultiTable2,
+ global::MultiTableRow
+ >.MakeUniqueConstraint(2)
+ ],
+ Sequences:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ MultiTable2,
+ global::MultiTableRow
+ >.MakeSequence(1)
+ ],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
- public ulong Count =>
- global::SpacetimeDB.Internal.ITableView.DoCount();
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView.DoCount();
- public IEnumerable Iter() =>
- global::SpacetimeDB.Internal.ITableView.DoIter();
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView.DoIter();
- public global::PublicTable Insert(global::PublicTable row) =>
- global::SpacetimeDB.Internal.ITableView.DoInsert(
- row
- );
+ public global::MultiTableRow Insert(global::MultiTableRow row) =>
+ global::SpacetimeDB.Internal.ITableView.DoInsert(
+ row
+ );
- public bool Delete(global::PublicTable row) =>
- global::SpacetimeDB.Internal.ITableView.DoDelete(
- row
- );
+ public bool Delete(global::MultiTableRow row) =>
+ global::SpacetimeDB.Internal.ITableView.DoDelete(
+ row
+ );
- public sealed class IdUniqueIndex
- : UniqueIndex
- {
- internal IdUniqueIndex()
- : base("PublicTable_Id_idx_btree") { }
+ public sealed class BarUniqueIndex
+ : UniqueIndex
+ {
+ internal BarUniqueIndex()
+ : base("MultiTable2_Bar_idx_btree") { }
+
+ // Important: don't move this to the base class.
+ // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
+ // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
+ public global::MultiTableRow? Find(uint key) =>
+ DoFilter(key).Cast().SingleOrDefault();
+
+ public global::MultiTableRow Update(global::MultiTableRow row) => DoUpdate(row);
+ }
- // Important: don't move this to the base class.
- // C# generics don't play well with nullable types and can't accept both struct-type-based and class-type-based
- // `globalName` in one generic definition, leading to buggy `Row?` expansion for either one or another.
- public global::PublicTable? Find(int key) =>
- DoFilter(key).Cast().SingleOrDefault();
+ public BarUniqueIndex Bar => new();
+ }
+
+ public readonly struct PrivateTable
+ : global::SpacetimeDB.Internal.ITableView
+ {
+ static global::PrivateTable global::SpacetimeDB.Internal.ITableView<
+ PrivateTable,
+ global::PrivateTable
+ >.ReadGenFields(System.IO.BinaryReader reader, global::PrivateTable row)
+ {
+ return row;
+ }
+
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ PrivateTable,
+ global::PrivateTable
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(PrivateTable),
+ ProductTypeRef: (uint)
+ new global::PrivateTable.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [],
+ Indexes: [],
+ Constraints: [],
+ Sequences: [],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Private
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView.DoCount();
+
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView.DoIter();
+
+ public global::PrivateTable Insert(global::PrivateTable row) =>
+ global::SpacetimeDB.Internal.ITableView.DoInsert(
+ row
+ );
- public global::PublicTable Update(global::PublicTable row) => DoUpdate(row);
+ public bool Delete(global::PrivateTable row) =>
+ global::SpacetimeDB.Internal.ITableView.DoDelete(
+ row
+ );
+ }
+
+ public readonly struct PublicTable
+ : global::SpacetimeDB.Internal.ITableView
+ {
+ static global::PublicTable global::SpacetimeDB.Internal.ITableView<
+ PublicTable,
+ global::PublicTable
+ >.ReadGenFields(System.IO.BinaryReader reader, global::PublicTable row)
+ {
+ if (row.Id == default)
+ {
+ row.Id = global::PublicTable.BSATN.IdRW.Read(reader);
}
+ return row;
+ }
+
+ static SpacetimeDB.Internal.RawTableDefV9 global::SpacetimeDB.Internal.ITableView<
+ PublicTable,
+ global::PublicTable
+ >.MakeTableDesc(SpacetimeDB.BSATN.ITypeRegistrar registrar) =>
+ new(
+ Name: nameof(PublicTable),
+ ProductTypeRef: (uint)
+ new global::PublicTable.BSATN().GetAlgebraicType(registrar).Ref_,
+ PrimaryKey: [0],
+ Indexes:
+ [
+ new(
+ Name: null,
+ AccessorName: "Id",
+ Algorithm: new SpacetimeDB.Internal.RawIndexAlgorithm.BTree([0])
+ )
+ ],
+ Constraints:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ PublicTable,
+ global::PublicTable
+ >.MakeUniqueConstraint(0)
+ ],
+ Sequences:
+ [
+ global::SpacetimeDB.Internal.ITableView<
+ PublicTable,
+ global::PublicTable
+ >.MakeSequence(0)
+ ],
+ Schedule: null,
+ TableType: SpacetimeDB.Internal.TableType.User,
+ TableAccess: SpacetimeDB.Internal.TableAccess.Public
+ );
+
+ public ulong Count =>
+ global::SpacetimeDB.Internal.ITableView.DoCount();
- public IdUniqueIndex Id => new();
+ public IEnumerable Iter() =>
+ global::SpacetimeDB.Internal.ITableView.DoIter();
+
+ public global::PublicTable Insert(global::PublicTable row) =>
+ global::SpacetimeDB.Internal.ITableView.DoInsert(row);
+
+ public bool Delete(global::PublicTable row) =>
+ global::SpacetimeDB.Internal.ITableView