using System.IO; using ArchestrAServices.ASBIDataContract; using ArchestrAServices.Contract; namespace ArchestrAServices.ASBContract; public struct VariantTester : IASBCustomSerializableType { private Variant _testVariant = default(Variant); public ushort Type { get { return _testVariant.Type; } set { _testVariant.Type = value; } } public int Length { get { return _testVariant.Length; } set { _testVariant.Length = value; } } public byte[] Payload { get { return _testVariant.Payload; } set { _testVariant.Payload = value; } } public VariantTester(ArchestrAServices.ASBIDataContract.Variant Value) { _testVariant.Type = Value.Type; _testVariant.Length = Value.Length; _testVariant.Payload = Value.Payload; } public ArchestrAServices.ASBIDataContract.Variant GetAsVariant() { return new ArchestrAServices.ASBIDataContract.Variant { Type = _testVariant.Type, Length = _testVariant.Length, Payload = _testVariant.Payload }; } public void Initialize() { _testVariant = default(Variant); } public void WriteToStream(BinaryWriter writer) { _testVariant.WriteToStream(writer); } public void InitializeFromStream(BinaryReader reader) { _testVariant.InitializeFromStream(reader); } public object InitializeArrayFromStream(BinaryReader reader, int arrayCnt) { if (_testVariant.InitializeArrayFromStream(reader, arrayCnt) is Variant[] array) { ArchestrAServices.ASBIDataContract.Variant[] array2 = new ArchestrAServices.ASBIDataContract.Variant[array.Length]; for (int i = 0; i < array.Length; i++) { array2[i] = default(ArchestrAServices.ASBIDataContract.Variant); array2[i].Type = array[i].Type; array2[i].Length = array[i].Length; array2[i].Payload = array[i].Payload; } return array2; } return null; } public void WriteArrayToStream(object graph, ref BinaryWriter bw) { if (graph is ArchestrAServices.ASBIDataContract.Variant[] array) { Variant[] array2 = new Variant[array.Length]; for (int i = 0; i < array.Length; i++) { array2[i] = default(Variant); array2[i].Type = array[i].Type; array2[i].Length = array[i].Length; array2[i].Payload = array[i].Payload; } _testVariant.WriteArrayToStream(array2, ref bw); } } }