diff --git a/Capnp.Net.Runtime/TypeIdAttribute.cs b/Capnp.Net.Runtime/TypeIdAttribute.cs new file mode 100644 index 0000000..098dd03 --- /dev/null +++ b/Capnp.Net.Runtime/TypeIdAttribute.cs @@ -0,0 +1,27 @@ +using System; + +namespace Capnp +{ + /// + /// Annotates an enum, class or interface with its schema type identifier. + /// + [AttributeUsage(AttributeTargets.Enum | AttributeTargets.Class |AttributeTargets.Interface, AllowMultiple = false, Inherited = false)] + public class TypeIdAttribute : Attribute + { + /// + /// Constructs this attribute. + /// + /// The 64-bit type identifier from the schema file. + /// is zero. + public TypeIdAttribute(ulong typeId) + { + if (typeId == 0) throw new ArgumentOutOfRangeException(nameof(typeId), "The value cannot be zero."); + Id = typeId; + } + + /// + /// The schema type identifier. + /// + public ulong Id { get; } + } +} diff --git a/CapnpC.CSharp.Generator.Tests/Embedded Resources/test.cs b/CapnpC.CSharp.Generator.Tests/Embedded Resources/test.cs index d20da0b..5db5225 100644 --- a/CapnpC.CSharp.Generator.Tests/Embedded Resources/test.cs +++ b/CapnpC.CSharp.Generator.Tests/Embedded Resources/test.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; namespace Capnproto_test.Capnp.Test { + [TypeId(0x9c8e9318b29d9cd3UL)] public enum TestEnum : ushort { foo, @@ -19,8 +20,10 @@ namespace Capnproto_test.Capnp.Test garply } + [TypeId(0xa0a8f314b80b63fdUL)] public class TestAllTypes : ICapnpSerializable { + public const UInt64 TypeId = 0xa0a8f314b80b63fdUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -542,8 +545,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xeb3f9ebe98c73cb6UL)] public class TestDefaults : ICapnpSerializable { + public const UInt64 TypeId = 0xeb3f9ebe98c73cb6UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -1112,8 +1117,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe3da5a2ccd28c0d8UL)] public class TestAnyPointer : ICapnpSerializable { + public const UInt64 TypeId = 0xe3da5a2ccd28c0d8UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -1170,8 +1177,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf49850f63c2bfa59UL)] public class TestAnyOthers : ICapnpSerializable { + public const UInt64 TypeId = 0xf49850f63c2bfa59UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -1258,8 +1267,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa9d5f8efe770022bUL)] public class TestOutOfOrder : ICapnpSerializable { + public const UInt64 TypeId = 0xa9d5f8efe770022bUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -1436,8 +1447,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf47697362233ce52UL)] public class TestUnion : ICapnpSerializable { + public const UInt64 TypeId = 0xf47697362233ce52UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -1654,8 +1667,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xfc76a82eecb7a718UL)] public class @union0 : ICapnpSerializable { + public const UInt64 TypeId = 0xfc76a82eecb7a718UL; public enum WHICH : ushort { U0f0s0 = 0, @@ -2072,8 +2087,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xee0a6b99b7dc7ab2UL)] public class @union1 : ICapnpSerializable { + public const UInt64 TypeId = 0xee0a6b99b7dc7ab2UL; public enum WHICH : ushort { U1f0s0 = 0, @@ -2652,8 +2669,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xafc5fd419f0d66d4UL)] public class @union2 : ICapnpSerializable { + public const UInt64 TypeId = 0xafc5fd419f0d66d4UL; public enum WHICH : ushort { U2f0s1 = 0, @@ -2865,8 +2884,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa2fb022ec7f30053UL)] public class @union3 : ICapnpSerializable { + public const UInt64 TypeId = 0xa2fb022ec7f30053UL; public enum WHICH : ushort { U3f0s1 = 0, @@ -3079,8 +3100,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9e2e784c915329b6UL)] public class TestUnnamedUnion : ICapnpSerializable { + public const UInt64 TypeId = 0x9e2e784c915329b6UL; public enum WHICH : ushort { Foo = 0, @@ -3258,8 +3281,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x89a9494f1b900f22UL)] public class TestUnionInUnion : ICapnpSerializable { + public const UInt64 TypeId = 0x89a9494f1b900f22UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -3314,8 +3339,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xd005f6c63707670cUL)] public class @outer : ICapnpSerializable { + public const UInt64 TypeId = 0xd005f6c63707670cUL; public enum WHICH : ushort { Inner = 0, @@ -3444,8 +3471,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xff9ce111c6f8e5dbUL)] public class @inner : ICapnpSerializable { + public const UInt64 TypeId = 0xff9ce111c6f8e5dbUL; public enum WHICH : ushort { Foo = 0, @@ -3578,8 +3607,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xdc841556134c3103UL)] public class TestGroups : ICapnpSerializable { + public const UInt64 TypeId = 0xdc841556134c3103UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -3634,8 +3665,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe22ae74ff9113268UL)] public class @groups : ICapnpSerializable { + public const UInt64 TypeId = 0xe22ae74ff9113268UL; public enum WHICH : ushort { Foo = 0, @@ -3789,8 +3822,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf5fcba89c0c1196fUL)] public class @foo : ICapnpSerializable { + public const UInt64 TypeId = 0xf5fcba89c0c1196fUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -3876,8 +3911,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf0fa30304066a4b3UL)] public class @baz : ICapnpSerializable { + public const UInt64 TypeId = 0xf0fa30304066a4b3UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -3963,8 +4000,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb727c0d0091a001dUL)] public class @bar : ICapnpSerializable { + public const UInt64 TypeId = 0xb727c0d0091a001dUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -4052,8 +4091,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf77ed6f7454eec40UL)] public class TestInterleavedGroups : ICapnpSerializable { + public const UInt64 TypeId = 0xf77ed6f7454eec40UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -4122,8 +4163,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc7485a3516c7d3c8UL)] public class @group1 : ICapnpSerializable { + public const UInt64 TypeId = 0xc7485a3516c7d3c8UL; public enum WHICH : ushort { Qux = 0, @@ -4325,8 +4368,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xdb0afd413f4a313aUL)] public class @corge : ICapnpSerializable { + public const UInt64 TypeId = 0xdb0afd413f4a313aUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -4428,8 +4473,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xcc85a335569990e9UL)] public class @group2 : ICapnpSerializable { + public const UInt64 TypeId = 0xcc85a335569990e9UL; public enum WHICH : ushort { Qux = 0, @@ -4631,8 +4678,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa017f0366827ee37UL)] public class @corge : ICapnpSerializable { + public const UInt64 TypeId = 0xa017f0366827ee37UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -4735,8 +4784,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x94f7e0b103b4b718UL)] public class TestUnionDefaults : ICapnpSerializable { + public const UInt64 TypeId = 0x94f7e0b103b4b718UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -4854,8 +4905,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xd9f2b5941a343bcdUL)] public class TestNestedTypes : ICapnpSerializable { + public const UInt64 TypeId = 0xd9f2b5941a343bcdUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -4943,14 +4996,17 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb651d2fba42056d4UL)] public enum NestedEnum : ushort { foo, bar } + [TypeId(0x82cd03a53b29d76bUL)] public class NestedStruct : ICapnpSerializable { + public const UInt64 TypeId = 0x82cd03a53b29d76bUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5023,6 +5079,7 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xcfa0d546993a3df3UL)] public enum NestedEnum : ushort { baz, @@ -5032,8 +5089,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe78aac389e77b065UL)] public class TestUsing : ICapnpSerializable { + public const UInt64 TypeId = 0xe78aac389e77b065UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5107,8 +5166,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe41885c94393277eUL)] public class TestLists : ICapnpSerializable { + public const UInt64 TypeId = 0xe41885c94393277eUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5299,8 +5360,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8412c03b75b2cfeeUL)] public class Struct0 : ICapnpSerializable { + public const UInt64 TypeId = 0x8412c03b75b2cfeeUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5342,8 +5405,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe0fe5870b141ad69UL)] public class Struct1 : ICapnpSerializable { + public const UInt64 TypeId = 0xe0fe5870b141ad69UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5400,8 +5465,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa6411a353090145bUL)] public class Struct8 : ICapnpSerializable { + public const UInt64 TypeId = 0xa6411a353090145bUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5458,8 +5525,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa8abf7a82928986cUL)] public class Struct16 : ICapnpSerializable { + public const UInt64 TypeId = 0xa8abf7a82928986cUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5516,8 +5585,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xad7beedc4ed30742UL)] public class Struct32 : ICapnpSerializable { + public const UInt64 TypeId = 0xad7beedc4ed30742UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5574,8 +5645,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xef9a34f2ff7cc646UL)] public class Struct64 : ICapnpSerializable { + public const UInt64 TypeId = 0xef9a34f2ff7cc646UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5632,8 +5705,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc6abf1b0329e6227UL)] public class StructP : ICapnpSerializable { + public const UInt64 TypeId = 0xc6abf1b0329e6227UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5690,8 +5765,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x943a234ca336b16aUL)] public class Struct0c : ICapnpSerializable { + public const UInt64 TypeId = 0x943a234ca336b16aUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5748,8 +5825,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8991bc0e74a594cdUL)] public class Struct1c : ICapnpSerializable { + public const UInt64 TypeId = 0x8991bc0e74a594cdUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5821,8 +5900,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xed267416528c7a24UL)] public class Struct8c : ICapnpSerializable { + public const UInt64 TypeId = 0xed267416528c7a24UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5894,8 +5975,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9978837b037d58e6UL)] public class Struct16c : ICapnpSerializable { + public const UInt64 TypeId = 0x9978837b037d58e6UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -5967,8 +6050,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xed5fa940f54a7904UL)] public class Struct32c : ICapnpSerializable { + public const UInt64 TypeId = 0xed5fa940f54a7904UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -6040,8 +6125,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xbc743778f2597c7dUL)] public class Struct64c : ICapnpSerializable { + public const UInt64 TypeId = 0xbc743778f2597c7dUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -6113,8 +6200,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc2e364a40182013dUL)] public class StructPc : ICapnpSerializable { + public const UInt64 TypeId = 0xc2e364a40182013dUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -6187,8 +6276,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x92fc29a80f3ddd5cUL)] public class TestFieldZeroIsBit : ICapnpSerializable { + public const UInt64 TypeId = 0x92fc29a80f3ddd5cUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -6277,8 +6368,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa851ad32cbc2ffeaUL)] public class TestListDefaults : ICapnpSerializable { + public const UInt64 TypeId = 0xa851ad32cbc2ffeaUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -6359,8 +6452,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa76e3c9bb7fd56d3UL)] public class TestLateUnion : ICapnpSerializable { + public const UInt64 TypeId = 0xa76e3c9bb7fd56d3UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -6474,8 +6569,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x807280a2901aa079UL)] public class @theUnion : ICapnpSerializable { + public const UInt64 TypeId = 0x807280a2901aa079UL; public enum WHICH : ushort { Qux = 0, @@ -6633,8 +6730,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc1973984dee98e3aUL)] public class @anotherUnion : ICapnpSerializable { + public const UInt64 TypeId = 0xc1973984dee98e3aUL; public enum WHICH : ushort { Qux = 0, @@ -6793,8 +6892,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x95b30dd14e01dda8UL)] public class TestOldVersion : ICapnpSerializable { + public const UInt64 TypeId = 0x95b30dd14e01dda8UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -6881,8 +6982,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8ed75a7469f04ce3UL)] public class TestNewVersion : ICapnpSerializable { + public const UInt64 TypeId = 0x8ed75a7469f04ce3UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -7001,8 +7104,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xbd5fe16e5170c492UL)] public class TestOldUnionVersion : ICapnpSerializable { + public const UInt64 TypeId = 0xbd5fe16e5170c492UL; public enum WHICH : ushort { A = 0, @@ -7115,8 +7220,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc7e4c513a975492bUL)] public class TestNewUnionVersion : ICapnpSerializable { + public const UInt64 TypeId = 0xc7e4c513a975492bUL; public enum WHICH : ushort { A = 0, @@ -7246,8 +7353,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x86232c1de4513e84UL)] public class @a : ICapnpSerializable { + public const UInt64 TypeId = 0x86232c1de4513e84UL; public enum WHICH : ushort { A0 = 0, @@ -7360,8 +7469,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xfaf781ef89a00e39UL)] public class TestStructUnion : ICapnpSerializable { + public const UInt64 TypeId = 0xfaf781ef89a00e39UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -7416,8 +7527,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x992edc677bef5a3cUL)] public class @un : ICapnpSerializable { + public const UInt64 TypeId = 0x992edc677bef5a3cUL; public enum WHICH : ushort { Struct = 0, @@ -7548,8 +7661,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9daec9823f171085UL)] public class SomeStruct : ICapnpSerializable { + public const UInt64 TypeId = 0x9daec9823f171085UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -7622,8 +7737,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xdec497819d097c3cUL)] public class TestPrintInlineStructs : ICapnpSerializable { + public const UInt64 TypeId = 0xdec497819d097c3cUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -7694,8 +7811,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8e4936003708dac2UL)] public class InlineStruct : ICapnpSerializable { + public const UInt64 TypeId = 0x8e4936003708dac2UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -7768,8 +7887,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x91afd4a864dbb030UL)] public class TestWholeFloatDefault : ICapnpSerializable { + public const UInt64 TypeId = 0x91afd4a864dbb030UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -7843,8 +7964,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9d5b8cd8de9922ebUL)] public class TestGenerics : ICapnpSerializable where TFoo : class where TBar : class { + public const UInt64 TypeId = 0x9d5b8cd8de9922ebUL; public enum WHICH : ushort { Uv = 0, @@ -8001,8 +8124,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb46a779beaf3384eUL)] public class @ug : ICapnpSerializable { + public const UInt64 TypeId = 0xb46a779beaf3384eUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8058,8 +8183,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf6a841117e19ac73UL)] public class Inner : ICapnpSerializable { + public const UInt64 TypeId = 0xf6a841117e19ac73UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8131,8 +8258,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa9ab42b118d6d435UL)] public class Inner2 : ICapnpSerializable where TBaz : class { + public const UInt64 TypeId = 0xa9ab42b118d6d435UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8233,8 +8362,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb6a0829c762b06f3UL)] public class DeepNest : ICapnpSerializable where TQux : class { + public const UInt64 TypeId = 0xb6a0829c762b06f3UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8335,7 +8466,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(DeepNestInterfaceProxy<>)), Skeleton(typeof(DeepNestInterfaceSkeleton<>))] + [TypeId(0x8839ed86c9794287UL), Proxy(typeof(DeepNestInterfaceProxy<>)), Skeleton(typeof(DeepNestInterfaceSkeleton<>))] public interface IDeepNestInterface : IDisposable { Task Call(CancellationToken cancellationToken_ = default); @@ -8374,8 +8505,10 @@ namespace Capnproto_test.Capnp.Test public static class DeepNestInterface where TQuux : class { + [TypeId(0xb84eecc799437049UL)] public class Params_call : ICapnpSerializable { + public const UInt64 TypeId = 0xb84eecc799437049UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8417,8 +8550,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe080f0fc54614f6fUL)] public class Result_call : ICapnpSerializable { + public const UInt64 TypeId = 0xe080f0fc54614f6fUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8463,7 +8598,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(InterfaceProxy<>)), Skeleton(typeof(InterfaceSkeleton<>))] + [TypeId(0xc9e749e8dd54da5cUL), Proxy(typeof(InterfaceProxy<>)), Skeleton(typeof(InterfaceSkeleton<>))] public interface IInterface : IDisposable { Task<(TQux, Capnproto_test.Capnp.Test.TestGenerics)> Call(Capnproto_test.Capnp.Test.TestGenerics.Inner2 arg_, CancellationToken cancellationToken_ = default); @@ -8510,8 +8645,10 @@ namespace Capnproto_test.Capnp.Test public static class Interface where TQux : class { + [TypeId(0xa5b46224e33581adUL)] public class Result_call : ICapnpSerializable { + public const UInt64 TypeId = 0xa5b46224e33581adUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8584,8 +8721,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8e656edfb45ba6cfUL)] public class UseAliases : ICapnpSerializable { + public const UInt64 TypeId = 0x8e656edfb45ba6cfUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8718,8 +8857,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa9b2b1f52dde845dUL)] public class TestGenericsWrapper : ICapnpSerializable where TFoo : class where TBar : class { + public const UInt64 TypeId = 0xa9b2b1f52dde845dUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8776,8 +8917,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf28f83667a557a04UL)] public class TestGenericsWrapper2 : ICapnpSerializable { + public const UInt64 TypeId = 0xf28f83667a557a04UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8834,7 +8977,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestImplicitMethodParamsProxy)), Skeleton(typeof(TestImplicitMethodParamsSkeleton))] + [TypeId(0x8b9717a3f8d85a9aUL), Proxy(typeof(TestImplicitMethodParamsProxy)), Skeleton(typeof(TestImplicitMethodParamsSkeleton))] public interface ITestImplicitMethodParams : IDisposable { Task> Call(TT foo, TU bar, CancellationToken cancellationToken_ = default) @@ -8885,8 +9028,10 @@ namespace Capnproto_test.Capnp.Test public static class TestImplicitMethodParams { + [TypeId(0xf83f8caf54bdc486UL)] public class Params_call : ICapnpSerializable where TT : class where TU : class { + public const UInt64 TypeId = 0xf83f8caf54bdc486UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -8959,7 +9104,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestImplicitMethodParamsInGenericProxy<>)), Skeleton(typeof(TestImplicitMethodParamsInGenericSkeleton<>))] + [TypeId(0xdf9ccdeb81a704c9UL), Proxy(typeof(TestImplicitMethodParamsInGenericProxy<>)), Skeleton(typeof(TestImplicitMethodParamsInGenericSkeleton<>))] public interface ITestImplicitMethodParamsInGeneric : IDisposable { Task> Call(TT foo, TU bar, CancellationToken cancellationToken_ = default) @@ -9011,8 +9156,10 @@ namespace Capnproto_test.Capnp.Test public static class TestImplicitMethodParamsInGeneric where TV : class { + [TypeId(0x9aab8e25c808d71eUL)] public class Params_call : ICapnpSerializable where TT : class where TU : class { + public const UInt64 TypeId = 0x9aab8e25c808d71eUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -9085,8 +9232,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa54870440e919063UL)] public class TestGenericsUnion : ICapnpSerializable where TFoo : class where TBar : class { + public const UInt64 TypeId = 0xa54870440e919063UL; public enum WHICH : ushort { Foo = 0, @@ -9218,8 +9367,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9427b2a71030338fUL)] public class TestUseGenerics : ICapnpSerializable { + public const UInt64 TypeId = 0x9427b2a71030338fUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -9667,8 +9818,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc5598844441096dcUL)] public class TestEmptyStruct : ICapnpSerializable { + public const UInt64 TypeId = 0xc5598844441096dcUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -9710,8 +9863,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xabed745cd8c92095UL)] public class TestConstants : ICapnpSerializable { + public const UInt64 TypeId = 0xabed745cd8c92095UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -9753,8 +9908,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xddc280dbee9c99b3UL)] public class TestAnyPointerConstants : ICapnpSerializable { + public const UInt64 TypeId = 0xddc280dbee9c99b3UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -9856,7 +10013,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestInterfaceProxy)), Skeleton(typeof(TestInterfaceSkeleton))] + [TypeId(0x88eb12a0e0af92b2UL), Proxy(typeof(TestInterfaceProxy)), Skeleton(typeof(TestInterfaceSkeleton))] public interface ITestInterface : IDisposable { Task Foo(uint i, bool j, CancellationToken cancellationToken_ = default); @@ -9940,8 +10097,10 @@ namespace Capnproto_test.Capnp.Test public static class TestInterface { + [TypeId(0xb874edc0d559b391UL)] public class Params_foo : ICapnpSerializable { + public const UInt64 TypeId = 0xb874edc0d559b391UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10013,8 +10172,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb04fcaddab714ba4UL)] public class Result_foo : ICapnpSerializable { + public const UInt64 TypeId = 0xb04fcaddab714ba4UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10071,8 +10232,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xd044893357b42568UL)] public class Params_bar : ICapnpSerializable { + public const UInt64 TypeId = 0xd044893357b42568UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10114,8 +10277,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9bf141df4247d52fUL)] public class Result_bar : ICapnpSerializable { + public const UInt64 TypeId = 0x9bf141df4247d52fUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10157,8 +10322,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xd9ac8abb2a91cfbcUL)] public class Params_baz : ICapnpSerializable { + public const UInt64 TypeId = 0xd9ac8abb2a91cfbcUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10215,8 +10382,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9b99d14f2f375b2dUL)] public class Result_baz : ICapnpSerializable { + public const UInt64 TypeId = 0x9b99d14f2f375b2dUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10259,7 +10428,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestExtendsProxy)), Skeleton(typeof(TestExtendsSkeleton))] + [TypeId(0xe4e9bac98670b748UL), Proxy(typeof(TestExtendsProxy)), Skeleton(typeof(TestExtendsSkeleton))] public interface ITestExtends : Capnproto_test.Capnp.Test.ITestInterface { Task Qux(CancellationToken cancellationToken_ = default); @@ -10371,8 +10540,10 @@ namespace Capnproto_test.Capnp.Test public static class TestExtends { + [TypeId(0x83a4bc5471363f17UL)] public class Params_qux : ICapnpSerializable { + public const UInt64 TypeId = 0x83a4bc5471363f17UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10414,8 +10585,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8e4b3d1a3e2753ddUL)] public class Result_qux : ICapnpSerializable { + public const UInt64 TypeId = 0x8e4b3d1a3e2753ddUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10457,8 +10630,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xacf67532a7e7bad9UL)] public class Result_corge : ICapnpSerializable { + public const UInt64 TypeId = 0xacf67532a7e7bad9UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10500,8 +10675,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf3b834e851ea8af6UL)] public class Params_grault : ICapnpSerializable { + public const UInt64 TypeId = 0xf3b834e851ea8af6UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10544,7 +10721,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestExtends2Proxy)), Skeleton(typeof(TestExtends2Skeleton))] + [TypeId(0x98d7e0ef61488783UL), Proxy(typeof(TestExtends2Proxy)), Skeleton(typeof(TestExtends2Skeleton))] public interface ITestExtends2 : Capnproto_test.Capnp.Test.ITestExtends { } @@ -10626,7 +10803,7 @@ namespace Capnproto_test.Capnp.Test public override ulong InterfaceId => 11013518732491786115UL; } - [Proxy(typeof(TestPipelineProxy)), Skeleton(typeof(TestPipelineSkeleton))] + [TypeId(0xa5a404caa61d4cd0UL), Proxy(typeof(TestPipelineProxy)), Skeleton(typeof(TestPipelineSkeleton))] public interface ITestPipeline : IDisposable { Task<(string, Capnproto_test.Capnp.Test.TestPipeline.Box)> GetCap(uint n, Capnproto_test.Capnp.Test.ITestInterface inCap, CancellationToken cancellationToken_ = default); @@ -10740,8 +10917,10 @@ namespace Capnproto_test.Capnp.Test public static class TestPipeline { + [TypeId(0xb0b29e51db0e26b1UL)] public class Box : ICapnpSerializable { + public const UInt64 TypeId = 0xb0b29e51db0e26b1UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10798,8 +10977,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9442ad5a1d2c8acbUL)] public class AnyBox : ICapnpSerializable { + public const UInt64 TypeId = 0x9442ad5a1d2c8acbUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10856,8 +11037,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc7e8df5096257034UL)] public class Params_getCap : ICapnpSerializable { + public const UInt64 TypeId = 0xc7e8df5096257034UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -10929,8 +11112,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb2442a9e0ba28fdfUL)] public class Result_getCap : ICapnpSerializable { + public const UInt64 TypeId = 0xb2442a9e0ba28fdfUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11002,8 +11187,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa604ee63cf37819fUL)] public class Params_testPointers : ICapnpSerializable { + public const UInt64 TypeId = 0xa604ee63cf37819fUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11090,8 +11277,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8eda54756c6070d6UL)] public class Result_testPointers : ICapnpSerializable { + public const UInt64 TypeId = 0x8eda54756c6070d6UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11133,8 +11322,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf8e36b53ab093d4eUL)] public class Params_getAnyCap : ICapnpSerializable { + public const UInt64 TypeId = 0xf8e36b53ab093d4eUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11206,8 +11397,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xbf44b4c94c26ef79UL)] public class Result_getAnyCap : ICapnpSerializable { + public const UInt64 TypeId = 0xbf44b4c94c26ef79UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11280,7 +11473,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestCallOrderProxy)), Skeleton(typeof(TestCallOrderSkeleton))] + [TypeId(0xa0e77035bdff0051UL), Proxy(typeof(TestCallOrderProxy)), Skeleton(typeof(TestCallOrderSkeleton))] public interface ITestCallOrder : IDisposable { Task GetCallSequence(uint expected, CancellationToken cancellationToken_ = default); @@ -11325,8 +11518,10 @@ namespace Capnproto_test.Capnp.Test public static class TestCallOrder { + [TypeId(0x8f1e8cd56ceb74dcUL)] public class Params_getCallSequence : ICapnpSerializable { + public const UInt64 TypeId = 0x8f1e8cd56ceb74dcUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11383,8 +11578,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xdedbb6bf3810eab7UL)] public class Result_getCallSequence : ICapnpSerializable { + public const UInt64 TypeId = 0xdedbb6bf3810eab7UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11442,7 +11639,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestTailCalleeProxy)), Skeleton(typeof(TestTailCalleeSkeleton))] + [TypeId(0xddd699207eb8e23bUL), Proxy(typeof(TestTailCalleeProxy)), Skeleton(typeof(TestTailCalleeSkeleton))] public interface ITestTailCallee : IDisposable { Task Foo(int i, string t, CancellationToken cancellationToken_ = default); @@ -11499,8 +11696,10 @@ namespace Capnproto_test.Capnp.Test public static class TestTailCallee { + [TypeId(0xa9ed2e5a9fd53d19UL)] public class TailResult : ICapnpSerializable { + public const UInt64 TypeId = 0xa9ed2e5a9fd53d19UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11587,8 +11786,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc5e1efc325614957UL)] public class Params_foo : ICapnpSerializable { + public const UInt64 TypeId = 0xc5e1efc325614957UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11661,7 +11862,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestTailCallerProxy)), Skeleton(typeof(TestTailCallerSkeleton))] + [TypeId(0x870bf40110ce3035UL), Proxy(typeof(TestTailCallerProxy)), Skeleton(typeof(TestTailCallerSkeleton))] public interface ITestTailCaller : IDisposable { Task Foo(int i, Capnproto_test.Capnp.Test.ITestTailCallee callee, CancellationToken cancellationToken_ = default); @@ -11713,8 +11914,10 @@ namespace Capnproto_test.Capnp.Test public static class TestTailCaller { + [TypeId(0xb07a279515dc8ac5UL)] public class Params_foo : ICapnpSerializable { + public const UInt64 TypeId = 0xb07a279515dc8ac5UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -11787,7 +11990,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestHandleProxy)), Skeleton(typeof(TestHandleSkeleton))] + [TypeId(0xa38e5efe41e53a15UL), Proxy(typeof(TestHandleProxy)), Skeleton(typeof(TestHandleSkeleton))] public interface ITestHandle : IDisposable { } @@ -11806,7 +12009,7 @@ namespace Capnproto_test.Capnp.Test public override ulong InterfaceId => 11785461720995412501UL; } - [Proxy(typeof(TestMoreStuffProxy)), Skeleton(typeof(TestMoreStuffSkeleton))] + [TypeId(0xddc70bf9784133cfUL), Proxy(typeof(TestMoreStuffProxy)), Skeleton(typeof(TestMoreStuffSkeleton))] public interface ITestMoreStuff : Capnproto_test.Capnp.Test.ITestCallOrder { Task CallFoo(Capnproto_test.Capnp.Test.ITestInterface cap, CancellationToken cancellationToken_ = default); @@ -12198,8 +12401,10 @@ namespace Capnproto_test.Capnp.Test public static class TestMoreStuff { + [TypeId(0x931ba418da60f6e4UL)] public class Params_callFoo : ICapnpSerializable { + public const UInt64 TypeId = 0x931ba418da60f6e4UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12256,8 +12461,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9a28970beccecdd0UL)] public class Result_callFoo : ICapnpSerializable { + public const UInt64 TypeId = 0x9a28970beccecdd0UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12314,8 +12521,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xfabc700c2ebe6378UL)] public class Params_callFooWhenResolved : ICapnpSerializable { + public const UInt64 TypeId = 0xfabc700c2ebe6378UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12372,8 +12581,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa54ce1e9aa822f90UL)] public class Result_callFooWhenResolved : ICapnpSerializable { + public const UInt64 TypeId = 0xa54ce1e9aa822f90UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12430,8 +12641,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x94fe60465c95182bUL)] public class Params_neverReturn : ICapnpSerializable { + public const UInt64 TypeId = 0x94fe60465c95182bUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12488,8 +12701,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xdef4e5fa6999c5dcUL)] public class Result_neverReturn : ICapnpSerializable { + public const UInt64 TypeId = 0xdef4e5fa6999c5dcUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12546,8 +12761,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xfe7c8fbb769d8e58UL)] public class Params_hold : ICapnpSerializable { + public const UInt64 TypeId = 0xfe7c8fbb769d8e58UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12604,8 +12821,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf839fb1374d003c9UL)] public class Result_hold : ICapnpSerializable { + public const UInt64 TypeId = 0xf839fb1374d003c9UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12647,8 +12866,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf8c5e5ef1edf83beUL)] public class Params_callHeld : ICapnpSerializable { + public const UInt64 TypeId = 0xf8c5e5ef1edf83beUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12690,8 +12911,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe59935f160ac7578UL)] public class Result_callHeld : ICapnpSerializable { + public const UInt64 TypeId = 0xe59935f160ac7578UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12748,8 +12971,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xfeffc025fce317e3UL)] public class Params_getHeld : ICapnpSerializable { + public const UInt64 TypeId = 0xfeffc025fce317e3UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12791,8 +13016,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xef4e146185af67ceUL)] public class Result_getHeld : ICapnpSerializable { + public const UInt64 TypeId = 0xef4e146185af67ceUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12849,8 +13076,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc07526f7e2e533b9UL)] public class Params_echo : ICapnpSerializable { + public const UInt64 TypeId = 0xc07526f7e2e533b9UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12907,8 +13136,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa6224536593d5b92UL)] public class Result_echo : ICapnpSerializable { + public const UInt64 TypeId = 0xa6224536593d5b92UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -12965,8 +13196,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa1cc32d87f3edeb1UL)] public class Params_expectCancel : ICapnpSerializable { + public const UInt64 TypeId = 0xa1cc32d87f3edeb1UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13023,8 +13256,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8a3eba1758c0916eUL)] public class Result_expectCancel : ICapnpSerializable { + public const UInt64 TypeId = 0x8a3eba1758c0916eUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13066,8 +13301,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x99160a25fa50fbf1UL)] public class Params_methodWithDefaults : ICapnpSerializable { + public const UInt64 TypeId = 0x99160a25fa50fbf1UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13156,8 +13393,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9c7e066f845a6c56UL)] public class Result_methodWithDefaults : ICapnpSerializable { + public const UInt64 TypeId = 0x9c7e066f845a6c56UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13230,8 +13469,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xead024a301a092a1UL)] public class Params_getHandle : ICapnpSerializable { + public const UInt64 TypeId = 0xead024a301a092a1UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13273,8 +13514,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc3490d75420a1fe8UL)] public class Result_getHandle : ICapnpSerializable { + public const UInt64 TypeId = 0xc3490d75420a1fe8UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13331,8 +13574,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xd8493f0e175d61f2UL)] public class Params_getNull : ICapnpSerializable { + public const UInt64 TypeId = 0xd8493f0e175d61f2UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13374,8 +13619,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe6955d8ef1023671UL)] public class Result_getNull : ICapnpSerializable { + public const UInt64 TypeId = 0xe6955d8ef1023671UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13432,8 +13679,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x805df436f55dd07aUL)] public class Params_getEnormousString : ICapnpSerializable { + public const UInt64 TypeId = 0x805df436f55dd07aUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13475,8 +13724,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x860e7512dc3925b0UL)] public class Result_getEnormousString : ICapnpSerializable { + public const UInt64 TypeId = 0x860e7512dc3925b0UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13533,8 +13784,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xfb92899aeb0ee74fUL)] public class Params_methodWithNullDefault : ICapnpSerializable { + public const UInt64 TypeId = 0xfb92899aeb0ee74fUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13606,8 +13859,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8467348247305cf7UL)] public class Result_methodWithNullDefault : ICapnpSerializable { + public const UInt64 TypeId = 0x8467348247305cf7UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13650,7 +13905,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestMembraneProxy)), Skeleton(typeof(TestMembraneSkeleton))] + [TypeId(0xc07d8dcd80a69c0cUL), Proxy(typeof(TestMembraneProxy)), Skeleton(typeof(TestMembraneSkeleton))] public interface ITestMembrane : IDisposable { Task MakeThing(CancellationToken cancellationToken_ = default); @@ -13806,7 +14061,7 @@ namespace Capnproto_test.Capnp.Test public static class TestMembrane { - [Proxy(typeof(ThingProxy)), Skeleton(typeof(ThingSkeleton))] + [TypeId(0x9352e4e41f173917UL), Proxy(typeof(ThingProxy)), Skeleton(typeof(ThingSkeleton))] public interface IThing : IDisposable { Task PassThrough(CancellationToken cancellationToken_ = default); @@ -13873,8 +14128,10 @@ namespace Capnproto_test.Capnp.Test public static class Thing { + [TypeId(0xff9bdcd05085d786UL)] public class Params_passThrough : ICapnpSerializable { + public const UInt64 TypeId = 0xff9bdcd05085d786UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13916,8 +14173,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xee94bed3615ee745UL)] public class Params_intercept : ICapnpSerializable { + public const UInt64 TypeId = 0xee94bed3615ee745UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -13960,8 +14219,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb0c6163faf291965UL)] public class Result : ICapnpSerializable { + public const UInt64 TypeId = 0xb0c6163faf291965UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14018,8 +14279,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xd8ac2acc3ece6556UL)] public class Params_makeThing : ICapnpSerializable { + public const UInt64 TypeId = 0xd8ac2acc3ece6556UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14061,8 +14324,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe5d4904814ccbf29UL)] public class Result_makeThing : ICapnpSerializable { + public const UInt64 TypeId = 0xe5d4904814ccbf29UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14119,8 +14384,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x945d9f634a6a29daUL)] public class Params_callPassThrough : ICapnpSerializable { + public const UInt64 TypeId = 0x945d9f634a6a29daUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14192,8 +14459,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8749aac3375c5c71UL)] public class Params_callIntercept : ICapnpSerializable { + public const UInt64 TypeId = 0x8749aac3375c5c71UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14265,8 +14534,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x869a1b7ab34b42c9UL)] public class Params_loopback : ICapnpSerializable { + public const UInt64 TypeId = 0x869a1b7ab34b42c9UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14323,8 +14594,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xecd19398fd88ab5cUL)] public class Result_loopback : ICapnpSerializable { + public const UInt64 TypeId = 0xecd19398fd88ab5cUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14381,8 +14654,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x8f6bb30cc62917ffUL)] public class Params_waitForever : ICapnpSerializable { + public const UInt64 TypeId = 0x8f6bb30cc62917ffUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14424,8 +14699,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc343a4907280be01UL)] public class Result_waitForever : ICapnpSerializable { + public const UInt64 TypeId = 0xc343a4907280be01UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14468,8 +14745,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x949449ad7c11fa5cUL)] public class TestContainMembrane : ICapnpSerializable { + public const UInt64 TypeId = 0x949449ad7c11fa5cUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14541,8 +14820,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xdd2b66a791a279f0UL)] public class TestTransferCap : ICapnpSerializable { + public const UInt64 TypeId = 0xdd2b66a791a279f0UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14598,8 +14879,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc7263e8f88844abcUL)] public class Element : ICapnpSerializable { + public const UInt64 TypeId = 0xc7263e8f88844abcUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14672,7 +14955,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestKeywordMethodsProxy)), Skeleton(typeof(TestKeywordMethodsSkeleton))] + [TypeId(0x9ae342d394247cfcUL), Proxy(typeof(TestKeywordMethodsProxy)), Skeleton(typeof(TestKeywordMethodsSkeleton))] public interface ITestKeywordMethods : IDisposable { Task Delete(CancellationToken cancellationToken_ = default); @@ -14767,8 +15050,10 @@ namespace Capnproto_test.Capnp.Test public static class TestKeywordMethods { + [TypeId(0xca3a89cdeb6bd6b7UL)] public class Params_delete : ICapnpSerializable { + public const UInt64 TypeId = 0xca3a89cdeb6bd6b7UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14810,8 +15095,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xeeb5843598307592UL)] public class Result_delete : ICapnpSerializable { + public const UInt64 TypeId = 0xeeb5843598307592UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14853,8 +15140,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9cf5a8313c5db036UL)] public class Params_class : ICapnpSerializable { + public const UInt64 TypeId = 0x9cf5a8313c5db036UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14896,8 +15185,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc0253868ac12e7d8UL)] public class Result_class : ICapnpSerializable { + public const UInt64 TypeId = 0xc0253868ac12e7d8UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14939,8 +15230,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa4a08763833c7757UL)] public class Params_void : ICapnpSerializable { + public const UInt64 TypeId = 0xa4a08763833c7757UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -14982,8 +15275,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xde82773089c0aeabUL)] public class Result_void : ICapnpSerializable { + public const UInt64 TypeId = 0xde82773089c0aeabUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15025,8 +15320,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x99817360625e8ca3UL)] public class Params_return : ICapnpSerializable { + public const UInt64 TypeId = 0x99817360625e8ca3UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15068,8 +15365,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xb70872e07eaa992fUL)] public class Result_return : ICapnpSerializable { + public const UInt64 TypeId = 0xb70872e07eaa992fUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15112,7 +15411,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestAuthenticatedBootstrapProxy<>)), Skeleton(typeof(TestAuthenticatedBootstrapSkeleton<>))] + [TypeId(0xea72cc77253798cdUL), Proxy(typeof(TestAuthenticatedBootstrapProxy<>)), Skeleton(typeof(TestAuthenticatedBootstrapSkeleton<>))] public interface ITestAuthenticatedBootstrap : IDisposable { Task GetCallerId(CancellationToken cancellationToken_ = default); @@ -15161,8 +15460,10 @@ namespace Capnproto_test.Capnp.Test public static class TestAuthenticatedBootstrap where TVatId : class { + [TypeId(0x8ec30e2451f1cffeUL)] public class Params_getCallerId : ICapnpSerializable { + public const UInt64 TypeId = 0x8ec30e2451f1cffeUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15204,8 +15505,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc71cf776034a3e67UL)] public class Result_getCallerId : ICapnpSerializable { + public const UInt64 TypeId = 0xc71cf776034a3e67UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15263,8 +15566,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xceba982cb629f6c2UL)] public class TestSturdyRef : ICapnpSerializable { + public const UInt64 TypeId = 0xceba982cb629f6c2UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15336,8 +15641,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xe02d3bbe1010e342UL)] public class TestSturdyRefHostId : ICapnpSerializable { + public const UInt64 TypeId = 0xe02d3bbe1010e342UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15394,8 +15701,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xaeb2ad168e2f5697UL)] public class TestSturdyRefObjectId : ICapnpSerializable { + public const UInt64 TypeId = 0xaeb2ad168e2f5697UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15451,6 +15760,7 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xef428f2f67c4d439UL)] public enum Tag : ushort { testInterface, @@ -15462,8 +15772,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x9e5c574772b1d462UL)] public class TestProvisionId : ICapnpSerializable { + public const UInt64 TypeId = 0x9e5c574772b1d462UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15505,8 +15817,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xea2fb7dca9cdbdeaUL)] public class TestRecipientId : ICapnpSerializable { + public const UInt64 TypeId = 0xea2fb7dca9cdbdeaUL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15548,8 +15862,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xa805157b98b65469UL)] public class TestThirdPartyCapId : ICapnpSerializable { + public const UInt64 TypeId = 0xa805157b98b65469UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15591,8 +15907,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf4c58a8ebcd0f600UL)] public class TestJoinResult : ICapnpSerializable { + public const UInt64 TypeId = 0xf4c58a8ebcd0f600UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15634,8 +15952,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xd1fd8e9caf2a5d58UL)] public class TestNameAnnotation : ICapnpSerializable { + public const UInt64 TypeId = 0xd1fd8e9caf2a5d58UL; public enum WHICH : ushort { BadFieldName = 0, @@ -15796,8 +16116,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0x89d9d1626b34017cUL)] public class @badlyNamedUnion : ICapnpSerializable { + public const UInt64 TypeId = 0x89d9d1626b34017cUL; public enum WHICH : ushort { BadlyNamedGroup = 0, @@ -15926,8 +16248,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xc3594bce5b24b722UL)] public class @badlyNamedGroup : ICapnpSerializable { + public const UInt64 TypeId = 0xc3594bce5b24b722UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -15969,6 +16293,7 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf610d1deb4c9e84aUL)] public enum BadlyNamedEnum : ushort { foo, @@ -15976,8 +16301,10 @@ namespace Capnproto_test.Capnp.Test baz } + [TypeId(0xbe406b6341d52284UL)] public class NestedStruct : ICapnpSerializable { + public const UInt64 TypeId = 0xbe406b6341d52284UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -16048,6 +16375,7 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xf6cb3f9c7a4322e0UL)] public enum DeeplyNestedEnum : ushort { quux, @@ -16057,7 +16385,7 @@ namespace Capnproto_test.Capnp.Test } } - [Proxy(typeof(TestNameAnnotationInterfaceProxy)), Skeleton(typeof(TestNameAnnotationInterfaceSkeleton))] + [TypeId(0xd112a69d31ed918bUL), Proxy(typeof(TestNameAnnotationInterfaceProxy)), Skeleton(typeof(TestNameAnnotationInterfaceSkeleton))] public interface ITestNameAnnotationInterface : IDisposable { Task BadlyNamedMethod(byte badlyNamedParam, CancellationToken cancellationToken_ = default); @@ -16096,8 +16424,10 @@ namespace Capnproto_test.Capnp.Test public static class TestNameAnnotationInterface { + [TypeId(0xc12efc3b075adfe9UL)] public class Params_badlyNamedMethod : ICapnpSerializable { + public const UInt64 TypeId = 0xc12efc3b075adfe9UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); @@ -16154,8 +16484,10 @@ namespace Capnproto_test.Capnp.Test } } + [TypeId(0xdcc3cdb4b28f6c86UL)] public class Result_badlyNamedMethod : ICapnpSerializable { + public const UInt64 TypeId = 0xdcc3cdb4b28f6c86UL; void ICapnpSerializable.Deserialize(DeserializerState arg_) { var reader = READER.create(arg_); diff --git a/CapnpC.CSharp.Generator/CodeGen/CodeGenerator.cs b/CapnpC.CSharp.Generator/CodeGen/CodeGenerator.cs index d873108..9721552 100644 --- a/CapnpC.CSharp.Generator/CodeGen/CodeGenerator.cs +++ b/CapnpC.CSharp.Generator/CodeGen/CodeGenerator.cs @@ -70,6 +70,9 @@ .AddConstraintClauses(MakeTypeParameterConstraints(def).ToArray()); } + topDecl = topDecl.AddMembers(CommonSnippetGen.MakeTypeIdConst(def.Id, _names)); + topDecl = topDecl.WithAttributeLists(CommonSnippetGen.MakeTypeIdAttributeLists(def.Id)); + if (def.UnionInfo != null) { topDecl = topDecl.AddMembers(_commonGen.MakeUnionSelectorEnum(def)); diff --git a/CapnpC.CSharp.Generator/CodeGen/CommonSnippetGen.cs b/CapnpC.CSharp.Generator/CodeGen/CommonSnippetGen.cs index d89b873..c214809 100644 --- a/CapnpC.CSharp.Generator/CodeGen/CommonSnippetGen.cs +++ b/CapnpC.CSharp.Generator/CodeGen/CommonSnippetGen.cs @@ -50,6 +50,7 @@ namespace CapnpC.CSharp.Generator.CodeGen public EnumDeclarationSyntax MakeEnum(TypeDefinition def) { var decl = EnumDeclaration(def.Name) + .WithAttributeLists(MakeTypeIdAttributeLists(def.Id)) .AddModifiers(Public) .AddBaseListTypes(SimpleBaseType(Type())); @@ -87,5 +88,38 @@ namespace CapnpC.CSharp.Generator.CodeGen } } + static LiteralExpressionSyntax HexLiteral(ulong id) => + LiteralExpression( + SyntaxKind.NumericLiteralExpression, + Literal($"0x{id:x}UL", id)); + + public static FieldDeclarationSyntax MakeTypeIdConst(ulong id, GenNames names) => + FieldDeclaration( + VariableDeclaration( + IdentifierName("UInt64")) + .WithVariables( + SingletonSeparatedList( + VariableDeclarator(names.TypeIdField.Identifier) + .WithInitializer( + EqualsValueClause(HexLiteral(id)))))) + .WithModifiers( + TokenList( + new[]{ + Token(SyntaxKind.PublicKeyword), + Token(SyntaxKind.ConstKeyword)})); + + public static AttributeSyntax MakeTypeIdAttribute(ulong id) => + Attribute( + IdentifierName("TypeId")) + .WithArgumentList( + AttributeArgumentList( + SingletonSeparatedList( + AttributeArgument(HexLiteral(id))))); + + public static SyntaxList MakeTypeIdAttributeLists(ulong id) => + SingletonList( + AttributeList( + SingletonSeparatedList( + CommonSnippetGen.MakeTypeIdAttribute(id)))); } } diff --git a/CapnpC.CSharp.Generator/CodeGen/GenNames.cs b/CapnpC.CSharp.Generator/CodeGen/GenNames.cs index b9282ab..2f6005c 100644 --- a/CapnpC.CSharp.Generator/CodeGen/GenNames.cs +++ b/CapnpC.CSharp.Generator/CodeGen/GenNames.cs @@ -62,6 +62,7 @@ namespace CapnpC.CSharp.Generator.CodeGen public string MemberAccessPathNameFormat { get; } public Name TaskParameter { get; } public Name EagerMethod { get; } + public Name TypeIdField { get; } public GenNames(GeneratorOptions options) { @@ -97,6 +98,7 @@ namespace CapnpC.CSharp.Generator.CodeGen MemberAccessPathNameFormat = options.MemberAccessPathNameFormat; TaskParameter = new Name(options.TaskParameterName); EagerMethod = new Name(options.EagerMethodName); + TypeIdField = new Name(options.TypeIdFieldName); } public Name MakeTypeName(TypeDefinition def, NameUsage usage = NameUsage.Default) diff --git a/CapnpC.CSharp.Generator/CodeGen/GeneratorOptions.cs b/CapnpC.CSharp.Generator/CodeGen/GeneratorOptions.cs index e534f2b..a8ec763 100644 --- a/CapnpC.CSharp.Generator/CodeGen/GeneratorOptions.cs +++ b/CapnpC.CSharp.Generator/CodeGen/GeneratorOptions.cs @@ -34,5 +34,6 @@ public string MemberAccessPathNameFormat { get; set; } = "Path_{0}_{1}"; public string TaskParameterName { get; set; } = "task"; public string EagerMethodName { get; set; } = "Eager"; + public string TypeIdFieldName { get; set; } = "TypeId"; } } diff --git a/CapnpC.CSharp.Generator/CodeGen/InterfaceSnippetGen.cs b/CapnpC.CSharp.Generator/CodeGen/InterfaceSnippetGen.cs index 11d6d36..e749537 100644 --- a/CapnpC.CSharp.Generator/CodeGen/InterfaceSnippetGen.cs +++ b/CapnpC.CSharp.Generator/CodeGen/InterfaceSnippetGen.cs @@ -96,6 +96,7 @@ namespace CapnpC.CSharp.Generator.CodeGen .AddAttributeLists( AttributeList() .AddAttributes( + CommonSnippetGen.MakeTypeIdAttribute(type.Id), Attribute(IdentifierName("Proxy")) .AddArgumentListArguments( AttributeArgument(