using System; using System.Text.Json; using System.Text.Json.Serialization; namespace MonoGame.Extended.Serialization.Json; /// /// Converts a value to or from JSON. /// public class HslColorJsonConverter : JsonConverter { private readonly ColorJsonConverter _colorConverter = new ColorJsonConverter(); /// public override bool CanConvert(Type typeToConvert) => typeToConvert == typeof(HslColor); /// public override HslColor Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { var color = _colorConverter.Read(ref reader, typeToConvert, options); return HslColor.FromRgb(color); } /// /// /// Throw if is . /// public override void Write(Utf8JsonWriter writer, HslColor value, JsonSerializerOptions options) { var color = ((HslColor)value).ToRgb(); _colorConverter.Write(writer, color, options); } }