Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 160 additions & 0 deletions crates/codegen/tests/snapshots/codegen__codegen_csharp.snap
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,81 @@ namespace SpacetimeDB
}
}
'''
"Reducers/NonrepeatingTest.g.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.

#nullable enable

using System;
using SpacetimeDB.ClientApi;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace SpacetimeDB
{
public sealed partial class RemoteReducers : RemoteBase
{
public delegate void NonrepeatingTestHandler(ReducerEventContext ctx, NonrepeatingTestArg arg);
public event NonrepeatingTestHandler? OnNonrepeatingTest;

public void NonrepeatingTest(NonrepeatingTestArg arg)
{
conn.InternalCallReducer(new Reducer.NonrepeatingTest(arg), this.SetCallReducerFlags.NonrepeatingTestFlags);
}

public bool InvokeNonrepeatingTest(ReducerEventContext ctx, Reducer.NonrepeatingTest args)
{
if (OnNonrepeatingTest == null)
{
if (InternalOnUnhandledReducerError != null)
{
switch(ctx.Event.Status)
{
case Status.Failed(var reason): InternalOnUnhandledReducerError(ctx, new Exception(reason)); break;
case Status.OutOfEnergy(var _): InternalOnUnhandledReducerError(ctx, new Exception("out of energy")); break;
}
}
return false;
}
OnNonrepeatingTest(
ctx,
args.Arg
);
return true;
}
}

public abstract partial class Reducer
{
[SpacetimeDB.Type]
[DataContract]
public sealed partial class NonrepeatingTest : Reducer, IReducerArgs
{
[DataMember(Name = "arg")]
public NonrepeatingTestArg Arg;

public NonrepeatingTest(NonrepeatingTestArg Arg)
{
this.Arg = Arg;
}

public NonrepeatingTest()
{
this.Arg = new();
}

string IReducerArgs.ReducerName => "nonrepeating_test";
}
}

public sealed partial class SetReducerFlags
{
internal CallReducerFlags NonrepeatingTestFlags;
public void NonrepeatingTest(CallReducerFlags flags) => NonrepeatingTestFlags = flags;
}
}
'''
"Reducers/QueryPrivate.g.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
Expand Down Expand Up @@ -1009,6 +1084,7 @@ namespace SpacetimeDB
{
AddTable(HasSpecialStuff = new(conn));
AddTable(LoggedOutPlayer = new(conn));
AddTable(NonrepeatingTestArg = new(conn));
AddTable(Person = new(conn));
AddTable(PkMultiIdentity = new(conn));
AddTable(Player = new(conn));
Expand Down Expand Up @@ -1458,6 +1534,7 @@ namespace SpacetimeDB
"delete_players_by_name" => BSATNHelpers.Decode<Reducer.DeletePlayersByName>(encodedArgs),
"list_over_age" => BSATNHelpers.Decode<Reducer.ListOverAge>(encodedArgs),
"log_module_identity" => BSATNHelpers.Decode<Reducer.LogModuleIdentity>(encodedArgs),
"nonrepeating_test" => BSATNHelpers.Decode<Reducer.NonrepeatingTest>(encodedArgs),
"query_private" => BSATNHelpers.Decode<Reducer.QueryPrivate>(encodedArgs),
"repeating_test" => BSATNHelpers.Decode<Reducer.RepeatingTest>(encodedArgs),
"say_hello" => BSATNHelpers.Decode<Reducer.SayHello>(encodedArgs),
Expand Down Expand Up @@ -1492,6 +1569,7 @@ namespace SpacetimeDB
Reducer.DeletePlayersByName args => Reducers.InvokeDeletePlayersByName(eventContext, args),
Reducer.ListOverAge args => Reducers.InvokeListOverAge(eventContext, args),
Reducer.LogModuleIdentity args => Reducers.InvokeLogModuleIdentity(eventContext, args),
Reducer.NonrepeatingTest args => Reducers.InvokeNonrepeatingTest(eventContext, args),
Reducer.QueryPrivate args => Reducers.InvokeQueryPrivate(eventContext, args),
Reducer.RepeatingTest args => Reducers.InvokeRepeatingTest(eventContext, args),
Reducer.SayHello args => Reducers.InvokeSayHello(eventContext, args),
Expand Down Expand Up @@ -1600,6 +1678,47 @@ namespace SpacetimeDB
}
}
'''
"Tables/NonrepeatingTestArg.g.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.

#nullable enable

using System;
using SpacetimeDB.BSATN;
using SpacetimeDB.ClientApi;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace SpacetimeDB
{
public sealed partial class RemoteTables
{
public sealed class NonrepeatingTestArgHandle : RemoteTableHandle<EventContext, NonrepeatingTestArg>
{
protected override string RemoteTableName => "nonrepeating_test_arg";

public sealed class ScheduledIdUniqueIndex : UniqueIndexBase<ulong>
{
protected override ulong GetKey(NonrepeatingTestArg row) => row.ScheduledId;

public ScheduledIdUniqueIndex(NonrepeatingTestArgHandle table) : base(table) { }
}

public readonly ScheduledIdUniqueIndex ScheduledId;

internal NonrepeatingTestArgHandle(DbConnection conn) : base(conn)
{
ScheduledId = new(this);
}

protected override object GetPrimaryKey(NonrepeatingTestArg row) => row.ScheduledId;
}

public readonly NonrepeatingTestArgHandle NonrepeatingTestArg;
}
}
'''
"Tables/Person.g.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
Expand Down Expand Up @@ -2141,6 +2260,47 @@ namespace SpacetimeDB
)>;
}
'''
"Types/NonrepeatingTestArg.g.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.

#nullable enable

using System;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace SpacetimeDB
{
[SpacetimeDB.Type]
[DataContract]
public sealed partial class NonrepeatingTestArg
{
[DataMember(Name = "scheduled_id")]
public ulong ScheduledId;
[DataMember(Name = "scheduled_at")]
public SpacetimeDB.ScheduleAt ScheduledAt;
[DataMember(Name = "prev_time")]
public SpacetimeDB.Timestamp PrevTime;

public NonrepeatingTestArg(
ulong ScheduledId,
SpacetimeDB.ScheduleAt ScheduledAt,
SpacetimeDB.Timestamp PrevTime
)
{
this.ScheduledId = ScheduledId;
this.ScheduledAt = ScheduledAt;
this.PrevTime = PrevTime;
}

public NonrepeatingTestArg()
{
this.ScheduledAt = null!;
}
}
}
'''
"Types/Person.g.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
Expand Down
Loading
Loading