using System; using System.Reflection; using System.Text.Json; using System.Text.Json.Serialization; namespace Jellyfin.Extensions.Json.Converters; /// /// Json flag enum converter factory. /// public class JsonFlagEnumConverterFactory : JsonConverterFactory { /// public override bool CanConvert(Type typeToConvert) { return typeToConvert.IsEnum && typeToConvert.IsDefined(typeof(FlagsAttribute)); } /// public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options) { return (JsonConverter?)Activator.CreateInstance(typeof(JsonFlagEnumConverter<>).MakeGenericType(typeToConvert)); } }