2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-09-13 12:43:17 +00:00
This commit is contained in:
2025-09-02 18:54:54 +03:00
parent 7bc128451a
commit 4a5145b9b8
3 changed files with 51 additions and 32 deletions

View File

@@ -483,10 +483,10 @@ public static class DataSerializer
return rt.ToArray();
}
public static (TransmissionDataUnitIdentifier, byte[]) TupleComposer(object value, Warehouse warehouse, DistributedConnection connection)
public static TransmissionDataUnitIdentifier TupleComposer(object value, Warehouse warehouse, DistributedConnection connection)
{
if (value == null)
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
return (TransmissionDataUnitIdentifier.Null, new byte[0], new byte[0]);
var rt = new List<byte>();
@@ -494,7 +494,6 @@ public static class DataSerializer
var list = fields.Select(x => x.GetValue(value)).ToArray();
var types = fields.Select(x => RepresentationType.FromType(x.FieldType).Compose()).ToArray();
rt.Add((byte)list.Length);
foreach (var t in types)
rt.AddRange(t);
@@ -502,11 +501,11 @@ public static class DataSerializer
var composed = ArrayComposer(list, warehouse, connection);
if (composed == null)
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
return (TransmissionDataUnitIdentifier.Null, new byte[0], new byte[0]);
else
{
rt.AddRange(composed);
return (TransmissionDataUnitIdentifier.TypedTuple, rt.ToArray());
return (TransmissionDataUnitIdentifier.TypedTuple, rt.ToArray(), composed);
}
}
}