// // automatically generated by the FlatBuffers compiler, do not modify // namespace union_value_collsion { using global::System; using global::System.Collections.Generic; using global::Google.FlatBuffers; [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum Value : byte { NONE = 0, IntValue = 1, }; public class ValueUnion { public Value Type { get; set; } public object Value_ { get; set; } public ValueUnion() { this.Type = Value.NONE; this.Value_ = null; } public T As() where T : class { return this.Value_ as T; } public union_value_collsion.IntValueT AsIntValue() { return this.As(); } public static ValueUnion FromIntValue(union_value_collsion.IntValueT _intvalue) { return new ValueUnion{ Type = Value.IntValue, Value_ = _intvalue }; } public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, ValueUnion _o) { switch (_o.Type) { default: return 0; case Value.IntValue: return union_value_collsion.IntValue.Pack(builder, _o.AsIntValue()).Value; } } } static public class ValueVerify { static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) { bool result = true; switch((Value)typeId) { case Value.IntValue: result = union_value_collsion.IntValueVerify.Verify(verifier, tablePos); break; default: result = true; break; } return result; } } public class ValueUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(ValueUnion) || objectType == typeof(System.Collections.Generic.List); } public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { var _olist = value as System.Collections.Generic.List; if (_olist != null) { writer.WriteStartArray(); foreach (var _o in _olist) { this.WriteJson(writer, _o, serializer); } writer.WriteEndArray(); } else { this.WriteJson(writer, value as ValueUnion, serializer); } } public void WriteJson(Newtonsoft.Json.JsonWriter writer, ValueUnion _o, Newtonsoft.Json.JsonSerializer serializer) { if (_o == null) return; serializer.Serialize(writer, _o.Value_); } public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { var _olist = existingValue as System.Collections.Generic.List; if (_olist != null) { for (var _j = 0; _j < _olist.Count; ++_j) { reader.Read(); _olist[_j] = this.ReadJson(reader, _olist[_j], serializer); } reader.Read(); return _olist; } else { return this.ReadJson(reader, existingValue as ValueUnion, serializer); } } public ValueUnion ReadJson(Newtonsoft.Json.JsonReader reader, ValueUnion _o, Newtonsoft.Json.JsonSerializer serializer) { if (_o == null) return null; switch (_o.Type) { default: break; case Value.IntValue: _o.Value_ = serializer.Deserialize(reader); break; } return _o; } } [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum Other : byte { NONE = 0, IntValue = 1, }; public class OtherUnion { public Other Type { get; set; } public object Value { get; set; } public OtherUnion() { this.Type = Other.NONE; this.Value = null; } public T As() where T : class { return this.Value as T; } public union_value_collsion.IntValueT AsIntValue() { return this.As(); } public static OtherUnion FromIntValue(union_value_collsion.IntValueT _intvalue) { return new OtherUnion{ Type = Other.IntValue, Value = _intvalue }; } public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, OtherUnion _o) { switch (_o.Type) { default: return 0; case Other.IntValue: return union_value_collsion.IntValue.Pack(builder, _o.AsIntValue()).Value; } } } static public class OtherVerify { static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) { bool result = true; switch((Other)typeId) { case Other.IntValue: result = union_value_collsion.IntValueVerify.Verify(verifier, tablePos); break; default: result = true; break; } return result; } } public class OtherUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(OtherUnion) || objectType == typeof(System.Collections.Generic.List); } public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { var _olist = value as System.Collections.Generic.List; if (_olist != null) { writer.WriteStartArray(); foreach (var _o in _olist) { this.WriteJson(writer, _o, serializer); } writer.WriteEndArray(); } else { this.WriteJson(writer, value as OtherUnion, serializer); } } public void WriteJson(Newtonsoft.Json.JsonWriter writer, OtherUnion _o, Newtonsoft.Json.JsonSerializer serializer) { if (_o == null) return; serializer.Serialize(writer, _o.Value); } public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { var _olist = existingValue as System.Collections.Generic.List; if (_olist != null) { for (var _j = 0; _j < _olist.Count; ++_j) { reader.Read(); _olist[_j] = this.ReadJson(reader, _olist[_j], serializer); } reader.Read(); return _olist; } else { return this.ReadJson(reader, existingValue as OtherUnion, serializer); } } public OtherUnion ReadJson(Newtonsoft.Json.JsonReader reader, OtherUnion _o, Newtonsoft.Json.JsonSerializer serializer) { if (_o == null) return null; switch (_o.Type) { default: break; case Other.IntValue: _o.Value = serializer.Deserialize(reader); break; } return _o; } } public struct IntValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static IntValue GetRootAsIntValue(ByteBuffer _bb) { return GetRootAsIntValue(_bb, new IntValue()); } public static IntValue GetRootAsIntValue(ByteBuffer _bb, IntValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public IntValue __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public int Value { get { int o = __p.__offset(4); return o != 0 ? __p.bb.GetInt(o + __p.bb_pos) : (int)0; } } public static Offset CreateIntValue(FlatBufferBuilder builder, int value = 0) { builder.StartTable(1); IntValue.AddValue(builder, value); return IntValue.EndIntValue(builder); } public static void StartIntValue(FlatBufferBuilder builder) { builder.StartTable(1); } public static void AddValue(FlatBufferBuilder builder, int value) { builder.AddInt(0, value, 0); } public static Offset EndIntValue(FlatBufferBuilder builder) { int o = builder.EndTable(); return new Offset(o); } public IntValueT UnPack() { var _o = new IntValueT(); this.UnPackTo(_o); return _o; } public void UnPackTo(IntValueT _o) { _o.Value = this.Value; } public static Offset Pack(FlatBufferBuilder builder, IntValueT _o) { if (_o == null) return default(Offset); return CreateIntValue( builder, _o.Value); } } public class IntValueT { [Newtonsoft.Json.JsonProperty("value")] public int Value { get; set; } public IntValueT() { this.Value = 0; } } static public class IntValueVerify { static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) { return verifier.VerifyTableStart(tablePos) && verifier.VerifyField(tablePos, 4 /*Value*/, 4 /*int*/, 4, false) && verifier.VerifyTableEnd(tablePos); } } public struct Collide : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Collide GetRootAsCollide(ByteBuffer _bb) { return GetRootAsCollide(_bb, new Collide()); } public static Collide GetRootAsCollide(ByteBuffer _bb, Collide obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public Collide __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public string Collide_ { get { int o = __p.__offset(4); return o != 0 ? __p.__string(o + __p.bb_pos) : null; } } #if ENABLE_SPAN_T public Span GetCollideBytes() { return __p.__vector_as_span(4, 1); } #else public ArraySegment? GetCollideBytes() { return __p.__vector_as_arraysegment(4); } #endif public byte[] GetCollideArray() { return __p.__vector_as_array(4); } public string Value { get { int o = __p.__offset(6); return o != 0 ? __p.__string(o + __p.bb_pos) : null; } } #if ENABLE_SPAN_T public Span GetValueBytes() { return __p.__vector_as_span(6, 1); } #else public ArraySegment? GetValueBytes() { return __p.__vector_as_arraysegment(6); } #endif public byte[] GetValueArray() { return __p.__vector_as_array(6); } public static Offset CreateCollide(FlatBufferBuilder builder, StringOffset collideOffset = default(StringOffset), StringOffset valueOffset = default(StringOffset)) { builder.StartTable(2); Collide.AddValue(builder, valueOffset); Collide.AddCollide(builder, collideOffset); return Collide.EndCollide(builder); } public static void StartCollide(FlatBufferBuilder builder) { builder.StartTable(2); } public static void AddCollide(FlatBufferBuilder builder, StringOffset collideOffset) { builder.AddOffset(0, collideOffset.Value, 0); } public static void AddValue(FlatBufferBuilder builder, StringOffset valueOffset) { builder.AddOffset(1, valueOffset.Value, 0); } public static Offset EndCollide(FlatBufferBuilder builder) { int o = builder.EndTable(); builder.Required(o, 4); // collide return new Offset(o); } public static VectorOffset CreateSortedVectorOfCollide(FlatBufferBuilder builder, Offset[] offsets) { Array.Sort(offsets, (Offset o1, Offset o2) => new Collide().__assign(builder.DataBuffer.Length - o1.Value, builder.DataBuffer).Collide_.CompareTo(new Collide().__assign(builder.DataBuffer.Length - o2.Value, builder.DataBuffer).Collide_)); return builder.CreateVectorOfTables(offsets); } public static Collide? __lookup_by_key(int vectorLocation, string key, ByteBuffer bb) { Collide obj_ = new Collide(); int span = bb.GetInt(vectorLocation - 4); int start = 0; while (span != 0) { int middle = span / 2; int tableOffset = Table.__indirect(vectorLocation + 4 * (start + middle), bb); obj_.__assign(tableOffset, bb); int comp = obj_.Collide_.CompareTo(key); if (comp > 0) { span = middle; } else if (comp < 0) { middle++; start += middle; span -= middle; } else { return obj_; } } return null; } public CollideT UnPack() { var _o = new CollideT(); this.UnPackTo(_o); return _o; } public void UnPackTo(CollideT _o) { _o.Collide_ = this.Collide_; _o.Value = this.Value; } public static Offset Pack(FlatBufferBuilder builder, CollideT _o) { if (_o == null) return default(Offset); var _collide = _o.Collide_ == null ? default(StringOffset) : builder.CreateString(_o.Collide_); var _value = _o.Value == null ? default(StringOffset) : builder.CreateString(_o.Value); return CreateCollide( builder, _collide, _value); } } public class CollideT { [Newtonsoft.Json.JsonProperty("collide")] public string Collide_ { get; set; } [Newtonsoft.Json.JsonProperty("value")] public string Value { get; set; } public CollideT() { this.Collide_ = null; this.Value = null; } } static public class CollideVerify { static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) { return verifier.VerifyTableStart(tablePos) && verifier.VerifyString(tablePos, 4 /*Collide*/, true) && verifier.VerifyString(tablePos, 6 /*Value*/, false) && verifier.VerifyTableEnd(tablePos); } } public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool VerifyCollision(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, CollisionVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public Collision __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public union_value_collsion.Value SomeValueType { get { int o = __p.__offset(4); return o != 0 ? (union_value_collsion.Value)__p.bb.Get(o + __p.bb_pos) : union_value_collsion.Value.NONE; } } public TTable? SomeValue() where TTable : struct, IFlatbufferObject { int o = __p.__offset(6); return o != 0 ? (TTable?)__p.__union(o + __p.bb_pos) : null; } public union_value_collsion.IntValue SomeValueAsIntValue() { return SomeValue().Value; } public union_value_collsion.Other ValueType { get { int o = __p.__offset(8); return o != 0 ? (union_value_collsion.Other)__p.bb.Get(o + __p.bb_pos) : union_value_collsion.Other.NONE; } } public TTable? Value() where TTable : struct, IFlatbufferObject { int o = __p.__offset(10); return o != 0 ? (TTable?)__p.__union(o + __p.bb_pos) : null; } public union_value_collsion.IntValue ValueAsIntValue() { return Value().Value; } public union_value_collsion.Collision? Collide(int j) { int o = __p.__offset(12); return o != 0 ? (union_value_collsion.Collision?)(new union_value_collsion.Collision()).__assign(__p.__indirect(__p.__vector(o) + j * 4), __p.bb) : null; } public int CollideLength { get { int o = __p.__offset(12); return o != 0 ? __p.__vector_len(o) : 0; } } public static Offset CreateCollision(FlatBufferBuilder builder, union_value_collsion.Value some_value_type = union_value_collsion.Value.NONE, int some_valueOffset = 0, union_value_collsion.Other value_type = union_value_collsion.Other.NONE, int valueOffset = 0, VectorOffset collideOffset = default(VectorOffset)) { builder.StartTable(5); Collision.AddCollide(builder, collideOffset); Collision.AddValue(builder, valueOffset); Collision.AddSomeValue(builder, some_valueOffset); Collision.AddValueType(builder, value_type); Collision.AddSomeValueType(builder, some_value_type); return Collision.EndCollision(builder); } public static void StartCollision(FlatBufferBuilder builder) { builder.StartTable(5); } public static void AddSomeValueType(FlatBufferBuilder builder, union_value_collsion.Value someValueType) { builder.AddByte(0, (byte)someValueType, 0); } public static void AddSomeValue(FlatBufferBuilder builder, int someValueOffset) { builder.AddOffset(1, someValueOffset, 0); } public static void AddValueType(FlatBufferBuilder builder, union_value_collsion.Other valueType) { builder.AddByte(2, (byte)valueType, 0); } public static void AddValue(FlatBufferBuilder builder, int valueOffset) { builder.AddOffset(3, valueOffset, 0); } public static void AddCollide(FlatBufferBuilder builder, VectorOffset collideOffset) { builder.AddOffset(4, collideOffset.Value, 0); } public static VectorOffset CreateCollideVector(FlatBufferBuilder builder, Offset[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i].Value); return builder.EndVector(); } public static VectorOffset CreateCollideVectorBlock(FlatBufferBuilder builder, Offset[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); } public static VectorOffset CreateCollideVectorBlock(FlatBufferBuilder builder, ArraySegment> data) { builder.StartVector(4, data.Count, 4); builder.Add(data); return builder.EndVector(); } public static VectorOffset CreateCollideVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add>(dataPtr, sizeInBytes); return builder.EndVector(); } public static void StartCollideVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); } public static Offset EndCollision(FlatBufferBuilder builder) { int o = builder.EndTable(); return new Offset(o); } public static void FinishCollisionBuffer(FlatBufferBuilder builder, Offset offset) { builder.Finish(offset.Value); } public static void FinishSizePrefixedCollisionBuffer(FlatBufferBuilder builder, Offset offset) { builder.FinishSizePrefixed(offset.Value); } public CollisionT UnPack() { var _o = new CollisionT(); this.UnPackTo(_o); return _o; } public void UnPackTo(CollisionT _o) { _o.SomeValue = new union_value_collsion.ValueUnion(); _o.SomeValue.Type = this.SomeValueType; switch (this.SomeValueType) { default: break; case union_value_collsion.Value.IntValue: _o.SomeValue.Value_ = this.SomeValue().HasValue ? this.SomeValue().Value.UnPack() : null; break; } _o.Value = new union_value_collsion.OtherUnion(); _o.Value.Type = this.ValueType; switch (this.ValueType) { default: break; case union_value_collsion.Other.IntValue: _o.Value.Value = this.Value().HasValue ? this.Value().Value.UnPack() : null; break; } _o.Collide = new List(); for (var _j = 0; _j < this.CollideLength; ++_j) {_o.Collide.Add(this.Collide(_j).HasValue ? this.Collide(_j).Value.UnPack() : null);} } public static Offset Pack(FlatBufferBuilder builder, CollisionT _o) { if (_o == null) return default(Offset); var _some_value_type = _o.SomeValue == null ? union_value_collsion.Value.NONE : _o.SomeValue.Type; var _some_value = _o.SomeValue == null ? 0 : union_value_collsion.ValueUnion.Pack(builder, _o.SomeValue); var _value_type = _o.Value == null ? union_value_collsion.Other.NONE : _o.Value.Type; var _value = _o.Value == null ? 0 : union_value_collsion.OtherUnion.Pack(builder, _o.Value); var _collide = default(VectorOffset); if (_o.Collide != null) { var __collide = new Offset[_o.Collide.Count]; for (var _j = 0; _j < __collide.Length; ++_j) { __collide[_j] = union_value_collsion.Collision.Pack(builder, _o.Collide[_j]); } _collide = CreateCollideVector(builder, __collide); } return CreateCollision( builder, _some_value_type, _some_value, _value_type, _value, _collide); } } public class CollisionT { [Newtonsoft.Json.JsonProperty("some_value_type")] private union_value_collsion.Value SomeValueType { get { return this.SomeValue != null ? this.SomeValue.Type : union_value_collsion.Value.NONE; } set { this.SomeValue = new union_value_collsion.ValueUnion(); this.SomeValue.Type = value; } } [Newtonsoft.Json.JsonProperty("some_value")] [Newtonsoft.Json.JsonConverter(typeof(union_value_collsion.ValueUnion_JsonConverter))] public union_value_collsion.ValueUnion SomeValue { get; set; } [Newtonsoft.Json.JsonProperty("value_type")] private union_value_collsion.Other ValueType { get { return this.Value != null ? this.Value.Type : union_value_collsion.Other.NONE; } set { this.Value = new union_value_collsion.OtherUnion(); this.Value.Type = value; } } [Newtonsoft.Json.JsonProperty("value")] [Newtonsoft.Json.JsonConverter(typeof(union_value_collsion.OtherUnion_JsonConverter))] public union_value_collsion.OtherUnion Value { get; set; } [Newtonsoft.Json.JsonProperty("collide")] public List Collide { get; set; } public CollisionT() { this.SomeValue = null; this.Value = null; this.Collide = null; } public static CollisionT DeserializeFromJson(string jsonText) { return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); } public string SerializeToJson() { return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); } public static CollisionT DeserializeFromBinary(byte[] fbBuffer) { return Collision.GetRootAsCollision(new ByteBuffer(fbBuffer)).UnPack(); } public byte[] SerializeToBinary() { var fbb = new FlatBufferBuilder(0x10000); Collision.FinishCollisionBuffer(fbb, Collision.Pack(fbb, this)); return fbb.DataBuffer.ToSizedArray(); } } static public class CollisionVerify { static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) { return verifier.VerifyTableStart(tablePos) && verifier.VerifyField(tablePos, 4 /*SomeValueType*/, 1 /*union_value_collsion.Value*/, 1, false) && verifier.VerifyUnion(tablePos, 4, 6 /*SomeValue*/, union_value_collsion.ValueVerify.Verify, false) && verifier.VerifyField(tablePos, 8 /*ValueType*/, 1 /*union_value_collsion.Other*/, 1, false) && verifier.VerifyUnion(tablePos, 8, 10 /*Value*/, union_value_collsion.OtherVerify.Verify, false) && verifier.VerifyVectorOfTables(tablePos, 12 /*Collide*/, union_value_collsion.CollisionVerify.Verify, false) && verifier.VerifyTableEnd(tablePos); } } }