public static int SerializeCacheSegment <TTypeResolver, T>(ref byte[] targetBytes, int startOffset, int offset, int index, ref CacheSegment <TTypeResolver, T> segment)
            where TTypeResolver : ITypeResolver, new()
        {
            BinaryUtil.WriteInt32(ref targetBytes, startOffset + (8 + 4 * index), offset - startOffset);

            return(segment.Serialize(ref targetBytes, offset));
        }
        public static int SerializeCacheSegment <T>(ref byte[] targetBytes, int startOffset, int offset, int index, CacheSegment <T> segment)
        {
            BinaryUtil.WriteInt32(ref targetBytes, startOffset + (8 + 4 * index), offset);

            return(segment.Serialize(ref targetBytes, offset));
        }