|
|
@@ -1,4 +1,5 @@ |
|
|
|
using System.Text.Json; |
|
|
|
using System.Text.Utf8; |
|
|
|
|
|
|
|
namespace Discord.Serialization.Json.Converters |
|
|
|
{ |
|
|
@@ -39,4 +40,24 @@ namespace Discord.Serialization.Json.Converters |
|
|
|
writer.WriteValue(value); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
internal class Utf8StringPropertyConverter : IJsonPropertyConverter<Utf8String> |
|
|
|
{ |
|
|
|
public Utf8String Read(PropertyMap map, ref JsonReader reader, bool isTopLevel) |
|
|
|
{ |
|
|
|
if (isTopLevel) |
|
|
|
reader.Read(); |
|
|
|
if (reader.ValueType != JsonValueType.String) |
|
|
|
throw new SerializationException("Bad input, expected String"); |
|
|
|
return new Utf8String(reader.Value); |
|
|
|
} |
|
|
|
public void Write(PropertyMap map, ref JsonWriter writer, Utf8String value, bool isTopLevel) |
|
|
|
{ |
|
|
|
//TODO: Serialization causes allocs, fix |
|
|
|
if (isTopLevel) |
|
|
|
writer.WriteAttribute(map.Utf16Key, value.ToString()); |
|
|
|
else |
|
|
|
writer.WriteValue(value.ToString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |