public Handle Update(Handle handle, TItem value)
        {
            var raw   = _serialize(value);
            var block = _heap.GetAllocatedBlock(handle);

            if (block.Length != raw.Length)
            {
                _heap.Free(handle);
                handle = _heap.Allocate(raw.Length);
            }

            _heap.Write(handle, raw);

            return(handle);
        }