Exemple #1
0
        public override void Set(NodeHeader *node)
        {
            Debug.Assert(this != Empty, "Cannot call Set() on PrefixedSlice.Empty");

            if (node->KeySize > 0)
            {
                var prefixHeaderPtr = (PrefixedSliceHeader *)((byte *)node + Constants.NodeHeaderSize);
                Header = *prefixHeaderPtr;

                NonPrefixedData.Set((byte *)prefixHeaderPtr + Constants.PrefixedSliceHeaderSize, Header.NonPrefixedDataSize);

                Size      = node->KeySize;
                KeyLength = (ushort)(Header.PrefixUsage + Header.NonPrefixedDataSize);
            }
            else
            {
                Size      = 0;
                KeyLength = 0;
            }
        }