---
source: crates/spacetimedb-cli/tests/codegen.rs
expression: outfiles
---
"TestA.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN RUST INSTEAD.
namespace SpacetimeDB
{
public partial class TestA : IDatabaseTable
{
[Newtonsoft.Json.JsonProperty("x")]
public uint x;
[Newtonsoft.Json.JsonProperty("y")]
public uint y;
[Newtonsoft.Json.JsonProperty("z")]
public string z;
public static TypeDef GetTypeDef()
{
return TypeDef.Tuple(new ElementDef[]
{
new SpacetimeDB.ElementDef(0, SpacetimeDB.TypeDef.BuiltInType(SpacetimeDB.TypeDef.Def.U32)),
new SpacetimeDB.ElementDef(1, SpacetimeDB.TypeDef.BuiltInType(SpacetimeDB.TypeDef.Def.U32)),
new SpacetimeDB.ElementDef(2, SpacetimeDB.TypeDef.BuiltInType(SpacetimeDB.TypeDef.Def.String)),
});
}
public static explicit operator TestA(TypeValue value)
{
var tupleValue = value.GetValue(TypeDef.Def.Tuple) as TypeValue[];
if (tupleValue == null)
{
throw new System.InvalidOperationException($"Invalid value (must be Tuple): {value.TypeDef.Type}");
}
return new TestA
{
x = (uint)tupleValue[0].GetValue(TypeDef.Def.U32),
y = (uint)tupleValue[1].GetValue(TypeDef.Def.U32),
z = (string)tupleValue[2].GetValue(TypeDef.Def.String),
};
}
public static System.Collections.Generic.IEnumerable<TestA> Iter()
{
foreach(var entry in NetworkManager.clientDB.GetEntries("TestA"))
{
var tupleArr = entry.GetValue(TypeDef.Def.Tuple) as TypeValue[];
if (tupleArr == null) continue;
yield return (TestA)entry;
}
}
public static System.Collections.Generic.IEnumerable<TestA> FilterByX(uint value)
{
foreach(var entry in NetworkManager.clientDB.GetEntries("TestA"))
{
var tupleArr = entry.GetValue(TypeDef.Def.Tuple) as TypeValue[];
if (tupleArr == null) continue;
var compareValue = (uint)tupleArr[0].GetValue(TypeDef.Def.U32);
if (compareValue == value)
yield return (TestA)entry;
}
}
public static System.Collections.Generic.IEnumerable<TestA> FilterByY(uint value)
{
foreach(var entry in NetworkManager.clientDB.GetEntries("TestA"))
{
var tupleArr = entry.GetValue(TypeDef.Def.Tuple) as TypeValue[];
if (tupleArr == null) continue;
var compareValue = (uint)tupleArr[1].GetValue(TypeDef.Def.U32);
if (compareValue == value)
yield return (TestA)entry;
}
}
public static System.Collections.Generic.IEnumerable<TestA> FilterByZ(string value)
{
foreach(var entry in NetworkManager.clientDB.GetEntries("TestA"))
{
var tupleArr = entry.GetValue(TypeDef.Def.Tuple) as TypeValue[];
if (tupleArr == null) continue;
var compareValue = (string)tupleArr[2].GetValue(TypeDef.Def.String);
if (compareValue == value)
yield return (TestA)entry;
}
}
}
}
'''
"TestB.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN RUST INSTEAD.
namespace SpacetimeDB
{
public partial class TestB : IDatabaseTable
{
[Newtonsoft.Json.JsonProperty("foo")]
public string foo;
public static TypeDef GetTypeDef()
{
return TypeDef.Tuple(new ElementDef[]
{
new SpacetimeDB.ElementDef(0, SpacetimeDB.TypeDef.BuiltInType(SpacetimeDB.TypeDef.Def.String)),
});
}
public static explicit operator TestB(TypeValue value)
{
var tupleValue = value.GetValue(TypeDef.Def.Tuple) as TypeValue[];
if (tupleValue == null)
{
throw new System.InvalidOperationException($"Invalid value (must be Tuple): {value.TypeDef.Type}");
}
return new TestB
{
foo = (string)tupleValue[0].GetValue(TypeDef.Def.String),
};
}
}
}
'''
"TestReducer.cs" = '''
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN RUST INSTEAD.
namespace SpacetimeDB
{
public static partial class Reducer
{
public static void Test(TestA arg, TestB arg2)
{
NetworkManager.instance.InternalCallReducer(new NetworkManager.Message
{
fn = "test",
args = new object[] { arg, arg2 },
});
}
}
}
'''