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);
}
}