Esempio n. 1
0
        public static unsafe MPTNode Decode(ReadOnlySpan <byte> data)
        {
            if (data.IsEmpty)
            {
                return(null);

                fixed(byte *pointer = data)
                {
                    using UnmanagedMemoryStream stream = new UnmanagedMemoryStream(pointer, data.Length);
                    using BinaryReader reader          = new BinaryReader(stream);

                    MPTNode n = (MPTNode)ReflectionCache <NodeType> .CreateInstance((NodeType)reader.ReadByte());

                    if (n is null)
                    {
                        throw new InvalidOperationException();
                    }

                    n.DecodeSpecific(reader);
                    return(n);
                }
        }
Esempio n. 2
0
 internal override void DecodeSpecific(BinaryReader reader)
 {
     Key  = reader.ReadVarBytes(MaxKeyLength);
     Next = new HashNode();
     Next.DecodeSpecific(reader);
 }