public static T GetJson <T>(this IMemory memory, JsonSerializerOptions jsonSerializerOptions = null)
        {
            if (jsonSerializerOptions == null)
            {
                jsonSerializerOptions = GetDefaultJsonSerializerOptions();
            }
            var reader = new Utf8JsonReader(memory.AsSpan());

            return(JsonSerializer.Deserialize <T>(ref reader, jsonSerializerOptions));
        }
        public static string GetString(this IMemory memory, Encoding encoding)
        {
#if !NETFRAMEWORK
            return(encoding.GetString(memory.AsSpan()));
#else
            unsafe
            {
                return(encoding.GetString((byte *)memory.Ptr, memory.Length));
            }
#endif
        }
        public static void SetString(this IMemory memory, string value, Encoding encoding)
        {
            var length = encoding.GetByteCount(value);

            memory.Allocate(length);
#if !NETFRAMEWORK
            encoding.GetBytes(value, memory.AsSpan());
#else
            unsafe
            {
                fixed(char *chars = value)
                {
                    encoding.GetBytes(chars, value.Length, (byte *)memory.Ptr, length);
                }
            }
#endif
        }