Example #1
0
        private byte[] Serialize(RadixTreePageBackingObject backingObject)
        {
            var header = new RadixTreeNodesPageHeader();

            var page = new Page(_pageManager, backingObject.PageIndex, new byte[_pageManager.PageSize]);

            var items = backingObject.Items.Select(item =>
            {
                if (item is byte[] bytes)
                {
                    return(bytes);
                }
                if (item == null)
                {
                    return(new byte[0]);
                }
                return(GetNodeBytes((IRadixTreeNode)item, 0));
            }).ToList();

            PageFormatter.FormatVariableSizeItemsPage(page, header, items);

            return(page.Content);
        }