@@ -16,7 +16,7 @@ namespace SpacetimeDB
16
16
[SpacetimeDB .Type ]
17
17
public partial class AddPlayer : IReducerArgs
18
18
{
19
- string IReducerArgs .ReducerName = > " add_player " ;
19
+ uint IReducerArgs .ReducerIndex = > 2 ;
20
20
21
21
public string Name = " " ;
22
22
}
@@ -36,7 +36,7 @@ namespace SpacetimeDB
36
36
[SpacetimeDB .Type ]
37
37
public partial class AddPrivate : IReducerArgs
38
38
{
39
- string IReducerArgs .ReducerName = > " add_private " ;
39
+ uint IReducerArgs .ReducerIndex = > 3 ;
40
40
41
41
public string Name = " " ;
42
42
}
@@ -91,7 +91,7 @@ namespace SpacetimeDB
91
91
[SpacetimeDB .Type ]
92
92
public partial class DeletePlayer : IReducerArgs
93
93
{
94
- string IReducerArgs .ReducerName = > " delete_player " ;
94
+ uint IReducerArgs .ReducerIndex = > 4 ;
95
95
96
96
public ulong Id ;
97
97
}
@@ -111,7 +111,7 @@ namespace SpacetimeDB
111
111
[SpacetimeDB .Type ]
112
112
public partial class DeletePlayersByName : IReducerArgs
113
113
{
114
- string IReducerArgs .ReducerName = > " delete_players_by_name " ;
114
+ uint IReducerArgs .ReducerIndex = > 5 ;
115
115
116
116
public string Name = " " ;
117
117
}
@@ -176,6 +176,42 @@ namespace SpacetimeDB
176
176
}
177
177
}
178
178
' ' '
179
+ "IdentityConnectedReducer.cs" = ' ' '
180
+ // THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
181
+ // WILL NOT BE SAVED. MODIFY TABLES IN RUST INSTEAD.
182
+ // <auto-generated />
183
+
184
+ #nullable enable
185
+
186
+ using System ;
187
+
188
+ namespace SpacetimeDB
189
+ {
190
+ [SpacetimeDB .Type ]
191
+ public partial class IdentityConnected : IReducerArgs
192
+ {
193
+ uint IReducerArgs .ReducerIndex = > 0 ;
194
+ }
195
+ }
196
+ ' ' '
197
+ "InitReducer.cs" = ' ' '
198
+ // THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
199
+ // WILL NOT BE SAVED. MODIFY TABLES IN RUST INSTEAD.
200
+ // <auto-generated />
201
+
202
+ #nullable enable
203
+
204
+ using System ;
205
+
206
+ namespace SpacetimeDB
207
+ {
208
+ [SpacetimeDB .Type ]
209
+ public partial class Init : IReducerArgs
210
+ {
211
+ uint IReducerArgs .ReducerIndex = > 1 ;
212
+ }
213
+ }
214
+ ' ' '
179
215
"NamespaceTestC.cs" = ' ' '
180
216
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
181
217
// WILL NOT BE SAVED. MODIFY TABLES IN RUST INSTEAD.
@@ -351,7 +387,7 @@ namespace SpacetimeDB
351
387
[SpacetimeDB .Type ]
352
388
public partial class QueryPrivate : IReducerArgs
353
389
{
354
- string IReducerArgs .ReducerName = > " query_private " ;
390
+ uint IReducerArgs .ReducerIndex = > 6 ;
355
391
}
356
392
}
357
393
' ' '
@@ -412,7 +448,7 @@ namespace SpacetimeDB
412
448
[SpacetimeDB .Type ]
413
449
public partial class RepeatingTest : IReducerArgs
414
450
{
415
- string IReducerArgs .ReducerName = > " repeating_test " ;
451
+ uint IReducerArgs .ReducerIndex = > 7 ;
416
452
417
453
public SpacetimeDB .RepeatingTestArg Arg = new ();
418
454
}
@@ -510,7 +546,7 @@ namespace SpacetimeDB
510
546
[SpacetimeDB .Type ]
511
547
public partial class TestBtreeIndexArgs : IReducerArgs
512
548
{
513
- string IReducerArgs .ReducerName = > " test_btree_index_args " ;
549
+ uint IReducerArgs .ReducerIndex = > 9 ;
514
550
}
515
551
}
516
552
' ' '
@@ -636,7 +672,7 @@ namespace SpacetimeDB
636
672
[SpacetimeDB.Type]
637
673
public partial class Test : IReducerArgs
638
674
{
639
- string IReducerArgs.ReducerName => "test" ;
675
+ uint IReducerArgs.ReducerIndex => 8 ;
640
676
641
677
public SpacetimeDB.TestA Arg = new();
642
678
public SpacetimeDB.TestB Arg2 = new();
@@ -882,6 +918,38 @@ namespace SpacetimeDB
882
918
{
883
919
internal RemoteReducers(DbConnection conn , SetReducerFlags SetReducerFlags ) : base (conn ) { this .SetCallReducerFlags = SetReducerFlags ; }
884
920
internal readonly SetReducerFlags SetCallReducerFlags ;
921
+ public delegate void IdentityConnectedHandler(EventContext ctx );
922
+ public event IdentityConnectedHandler ? OnIdentityConnected ;
923
+
924
+ public void IdentityConnected ()
925
+ {
926
+ conn.InternalCallReducer(new IdentityConnected { }, this .SetCallReducerFlags .IdentityConnectedFlags );
927
+ }
928
+
929
+ public bool InvokeIdentityConnected (EventContext ctx , IdentityConnected args )
930
+ {
931
+ if (OnIdentityConnected == null ) return false;
932
+ OnIdentityConnected(
933
+ ctx
934
+ );
935
+ return true;
936
+ }
937
+ public delegate void InitHandler (EventContext ctx );
938
+ public event InitHandler ? OnInit ;
939
+
940
+ public void Init ()
941
+ {
942
+ conn.InternalCallReducer(new Init { }, this .SetCallReducerFlags .InitFlags );
943
+ }
944
+
945
+ public bool InvokeInit (EventContext ctx , Init args )
946
+ {
947
+ if (OnInit == null ) return false;
948
+ OnInit(
949
+ ctx
950
+ );
951
+ return true;
952
+ }
885
953
public delegate void AddPlayerHandler (EventContext ctx , string name );
886
954
public event AddPlayerHandler ? OnAddPlayer ;
887
955
@@ -1024,6 +1092,10 @@ namespace SpacetimeDB
1024
1092
public sealed class SetReducerFlags
1025
1093
{
1026
1094
internal SetReducerFlags() { }
1095
+ internal CallReducerFlags IdentityConnectedFlags ;
1096
+ public void IdentityConnected(CallReducerFlags flags ) { this .IdentityConnectedFlags = flags ; }
1097
+ internal CallReducerFlags InitFlags ;
1098
+ public void Init(CallReducerFlags flags ) { this .InitFlags = flags ; }
1027
1099
internal CallReducerFlags AddPlayerFlags ;
1028
1100
public void AddPlayer(CallReducerFlags flags ) { this .AddPlayerFlags = flags ; }
1029
1101
internal CallReducerFlags AddPrivateFlags ;
@@ -1058,6 +1130,8 @@ namespace SpacetimeDB
1058
1130
1059
1131
[Type]
1060
1132
public partial record Reducer : TaggedEnum<(
1133
+ IdentityConnected IdentityConnected,
1134
+ Init Init,
1061
1135
AddPlayer AddPlayer,
1062
1136
AddPrivate AddPrivate,
1063
1137
DeletePlayer DeletePlayer,
@@ -1066,9 +1140,7 @@ namespace SpacetimeDB
1066
1140
RepeatingTest RepeatingTest,
1067
1141
Test Test,
1068
1142
TestBtreeIndexArgs TestBtreeIndexArgs,
1069
- Unit StdbNone,
1070
- Unit StdbIdentityConnected,
1071
- Unit StdbIdentityDisconnected
1143
+ Unit StdbNone
1072
1144
)>;
1073
1145
public class DbConnection : DbConnectionBase<DbConnection, Reducer>
1074
1146
{
@@ -1081,33 +1153,32 @@ namespace SpacetimeDB
1081
1153
SetReducerFlags = new();
1082
1154
Reducers = new(this , this .SetReducerFlags );
1083
1155
1084
- clientDB.AddTable<HasSpecialStuff >(" has_special_stuff " , Db .HasSpecialStuff );
1085
- clientDB.AddTable<PkMultiIdentity >(" pk_multi_identity " , Db .PkMultiIdentity );
1086
- clientDB.AddTable<Point >(" points " , Db .Points );
1087
- clientDB.AddTable<Private >(" private " , Db .Private );
1088
- clientDB.AddTable<RepeatingTestArg >(" repeating_test_arg " , Db .RepeatingTestArg );
1089
- clientDB.AddTable<TestA >(" test_a " , Db .TestA );
1090
- clientDB.AddTable<TestD >(" test_d " , Db .TestD );
1091
- clientDB.AddTable<TestE >(" test_e " , Db .TestE );
1092
- clientDB.AddTable<TestFoobar >(" test_f " , Db .TestF );
1156
+ clientDB.AddTable<HasSpecialStuff >(0 , Db .HasSpecialStuff );
1157
+ clientDB.AddTable<PkMultiIdentity >(1 , Db .PkMultiIdentity );
1158
+ clientDB.AddTable<Point >(2 , Db .Points );
1159
+ clientDB.AddTable<Private >(3 , Db .Private );
1160
+ clientDB.AddTable<RepeatingTestArg >(4 , Db .RepeatingTestArg );
1161
+ clientDB.AddTable<TestA >(5 , Db .TestA );
1162
+ clientDB.AddTable<TestD >(6 , Db .TestD );
1163
+ clientDB.AddTable<TestE >(7 , Db .TestE );
1164
+ clientDB.AddTable<TestFoobar >(8 , Db .TestF );
1093
1165
}
1094
1166
1095
- protected override Reducer ToReducer (TransactionUpdate update )
1167
+ protected override Reducer ToReducer (uint reducerIdx , TransactionUpdate update )
1096
1168
{
1097
1169
var encodedArgs = update.ReducerCall.Args;
1098
- return update.ReducerCall.ReducerName switch {
1099
- "add_player" => new Reducer.AddPlayer(BSATNHelpers .Decode <AddPlayer >(encodedArgs )),
1100
- "add_private" => new Reducer.AddPrivate(BSATNHelpers .Decode <AddPrivate >(encodedArgs )),
1101
- "delete_player" => new Reducer.DeletePlayer(BSATNHelpers .Decode <DeletePlayer >(encodedArgs )),
1102
- "delete_players_by_name" => new Reducer.DeletePlayersByName(BSATNHelpers .Decode <DeletePlayersByName >(encodedArgs )),
1103
- "query_private" => new Reducer.QueryPrivate(BSATNHelpers .Decode <QueryPrivate >(encodedArgs )),
1104
- "repeating_test" => new Reducer.RepeatingTest(BSATNHelpers .Decode <RepeatingTest >(encodedArgs )),
1105
- "test" => new Reducer.Test(BSATNHelpers .Decode <Test >(encodedArgs )),
1106
- "test_btree_index_args" => new Reducer.TestBtreeIndexArgs(BSATNHelpers .Decode <TestBtreeIndexArgs >(encodedArgs )),
1107
- "<none >" => new Reducer.StdbNone(default ),
1108
- "__identity_connected__" => new Reducer.StdbIdentityConnected(default ),
1109
- "__identity_disconnected__" => new Reducer.StdbIdentityDisconnected(default ),
1110
- "" => new Reducer.StdbNone(default ),
1170
+ return reducerIdx switch {
1171
+ 0 => new Reducer.IdentityConnected(BSATNHelpers .Decode <IdentityConnected >(encodedArgs )),
1172
+ 1 => new Reducer.Init(BSATNHelpers .Decode <Init >(encodedArgs )),
1173
+ 2 => new Reducer.AddPlayer(BSATNHelpers .Decode <AddPlayer >(encodedArgs )),
1174
+ 3 => new Reducer.AddPrivate(BSATNHelpers .Decode <AddPrivate >(encodedArgs )),
1175
+ 4 => new Reducer.DeletePlayer(BSATNHelpers .Decode <DeletePlayer >(encodedArgs )),
1176
+ 5 => new Reducer.DeletePlayersByName(BSATNHelpers .Decode <DeletePlayersByName >(encodedArgs )),
1177
+ 6 => new Reducer.QueryPrivate(BSATNHelpers .Decode <QueryPrivate >(encodedArgs )),
1178
+ 7 => new Reducer.RepeatingTest(BSATNHelpers .Decode <RepeatingTest >(encodedArgs )),
1179
+ 8 => new Reducer.Test(BSATNHelpers .Decode <Test >(encodedArgs )),
1180
+ 9 => new Reducer.TestBtreeIndexArgs(BSATNHelpers .Decode <TestBtreeIndexArgs >(encodedArgs )),
1181
+ 4294967295 => new Reducer.StdbNone(default ),
1111
1182
var reducer => throw new ArgumentOutOfRangeException("Reducer ", $ "Unknown reducer {reducer }")
1112
1183
};
1113
1184
}
@@ -1119,6 +1190,8 @@ namespace SpacetimeDB
1119
1190
{
1120
1191
var eventContext = (EventContext )context ;
1121
1192
return reducer switch {
1193
+ Reducer.IdentityConnected(var args ) => Reducers.InvokeIdentityConnected(eventContext , args ),
1194
+ Reducer.Init(var args ) => Reducers.InvokeInit(eventContext , args ),
1122
1195
Reducer.AddPlayer(var args ) => Reducers.InvokeAddPlayer(eventContext , args ),
1123
1196
Reducer.AddPrivate(var args ) => Reducers.InvokeAddPrivate(eventContext , args ),
1124
1197
Reducer.DeletePlayer(var args ) => Reducers.InvokeDeletePlayer(eventContext , args ),
@@ -1127,9 +1200,7 @@ namespace SpacetimeDB
1127
1200
Reducer.RepeatingTest(var args ) => Reducers.InvokeRepeatingTest(eventContext , args ),
1128
1201
Reducer.Test(var args ) => Reducers.InvokeTest(eventContext , args ),
1129
1202
Reducer.TestBtreeIndexArgs(var args ) => Reducers.InvokeTestBtreeIndexArgs(eventContext , args ),
1130
- Reducer.StdbNone or
1131
- Reducer.StdbIdentityConnected or
1132
- Reducer.StdbIdentityDisconnected => true ,
1203
+ Reducer.StdbNone => true ,
1133
1204
_ => throw new ArgumentOutOfRangeException("Reducer ", $ "Unknown reducer {reducer }")
1134
1205
};
1135
1206
}
0 commit comments