using System; using System.Collections.Generic; using System.Numerics; using System.Text.Json; using System.Text.Json.Serialization; namespace Questionable.Model.Common.Converter; public sealed class VectorListConverter : JsonConverter> { private static readonly VectorConverter ItemConverter = new VectorConverter(); public override List Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType != JsonTokenType.StartArray) { throw new JsonException(); } List list = new List(); while (reader.Read()) { if (reader.TokenType == JsonTokenType.EndArray) { return list; } list.Add(ItemConverter.Read(ref reader, typeof(Vector3), options)); } throw new JsonException(); } public override void Write(Utf8JsonWriter writer, List value, JsonSerializerOptions options) { writer.WriteStartArray(); foreach (Vector3 item in value) { ItemConverter.Write(writer, item, options); } writer.WriteEndArray(); } }