using System;
using System.Reflection;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace MonoGame.Extended.Particles.Serialization;
///
/// Converts a value to or from JSON.
///
public class ModifierExecutionStrategyJsonConverter : JsonConverter
{
///
public override bool CanConvert(Type typeToConvert) =>
typeToConvert == typeof(ParticleModifierExecutionStrategy) ||
typeToConvert.GetTypeInfo().BaseType == typeof(ParticleModifierExecutionStrategy);
///
public override ParticleModifierExecutionStrategy Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var value = JsonSerializer.Deserialize(ref reader, options);
return ParticleModifierExecutionStrategy.Parse(value);
}
///
///
/// Throw if is .
///
public override void Write(Utf8JsonWriter writer, ParticleModifierExecutionStrategy value, JsonSerializerOptions options)
{
ArgumentNullException.ThrowIfNull(writer);
writer.WriteStringValue(value.ToString());
}
}