/// <summary> /// Binary deserialize /// </summary> /// <param name="reader">Reader of binary</param> public string BinaryDeserialize(ref BinarySpanReader reader) { int length = BitConverter.ToInt32(reader.Read(sizeof(int))); if (length == -1) { return(null); } return(new string(MemoryMarshal.Cast <byte, char>(reader.Read(length)))); }
/// <summary> /// Binary deserialize /// </summary> /// <param name="reader">Reader of binary</param> public byte[] BinaryDeserialize(ref BinarySpanReader reader) { var length = BitConverter.ToInt32(reader.Read(sizeof(int))); if (length == 0) { return(null); } return(reader.Read(length).ToArray()); }
private static DebugModuleProperties Decode(ReadOnlySpan <byte> memory) { var reader = new BinarySpanReader(memory, ByteOrder.LittleEndian); var endPoint = new EndPointAddress(reader.Read().ToArray()); // TODO: This copies var module = new ModuleIdentifier(reader.ReadString()); var major = reader.ReadInt32(); var minor = reader.ReadInt32(); var revision = reader.ReadInt32(); var isPreRelease = reader.ReadBool(); var version = new ModuleVersion(major, minor, revision, isPreRelease); return(new DebugModuleProperties(endPoint, module, version)); }
private EndPointAddress ReadEndPointAddress(ref BinarySpanReader reader) { var localEndPointBytesLenght = reader.ReadInt32(); if (localEndPointBytesLenght == 0) { return(EndPointAddress.UnknownAddress); } var utf8EncodedValue = reader.Read(localEndPointBytesLenght); var copy = utf8EncodedValue.ToArray(); // TODO return(new EndPointAddress(copy)); }
/// <summary> /// Binary deserialize /// </summary> /// <param name="reader">Reader of binary</param> public List <T> BinaryDeserialize(ref BinarySpanReader reader) { var length = BitConverter.ToInt32(reader.Read(sizeof(int))); if (length == 0) { return(null); } var instance = new List <T>(); for (int i = 0; i < length; i++) { instance.Add(typeGoInfo.BinaryDeserialize(ref reader)); } return(instance); }
/// <summary> /// Binary deserialize /// </summary> /// <param name="reader">Reader of binary</param> public T[] BinaryDeserialize(ref BinarySpanReader reader) { int length = BitConverter.ToInt32(reader.Read(sizeof(int))); if (length == -1) { return(null); } else if (length == 0) { return(new T[0]); } T[] instance = new T[length]; for (int i = 0; i < length; i++) { instance[i] = typeGoInfo.BinaryDeserialize(ref reader); } return(instance); }
/// <summary> /// Binary deserialize /// </summary> /// <param name="reader">Reader of binary</param> public TObject BinaryDeserialize(ref BinarySpanReader reader) { if (reader.Read(1)[0] == 0) { return(default);