Initial commit, basic proxying working
This commit is contained in:
28
Myriad/Serialization/ShardInfoJsonConverter.cs
Normal file
28
Myriad/Serialization/ShardInfoJsonConverter.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
using Myriad.Gateway;
|
||||
|
||||
namespace Myriad.Serialization
|
||||
{
|
||||
public class ShardInfoJsonConverter: JsonConverter<ShardInfo>
|
||||
{
|
||||
public override ShardInfo? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
var arr = JsonSerializer.Deserialize<int[]>(ref reader);
|
||||
if (arr?.Length != 2)
|
||||
throw new JsonException("Expected shard info as array of length 2");
|
||||
|
||||
return new ShardInfo(arr[0], arr[1]);
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer, ShardInfo value, JsonSerializerOptions options)
|
||||
{
|
||||
writer.WriteStartArray();
|
||||
writer.WriteNumberValue(value.ShardId);
|
||||
writer.WriteNumberValue(value.NumShards);
|
||||
writer.WriteEndArray();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user