< Summary - Jellyfin

Information
Class: Jellyfin.Extensions.Json.Converters.JsonFlagEnumConverter<T>
Assembly: Jellyfin.Extensions
File(s): /srv/git/jellyfin/src/Jellyfin.Extensions/Json/Converters/JsonFlagEnumConverter.cs
Line coverage
87%
Covered lines: 7
Uncovered lines: 1
Coverable lines: 8
Total lines: 36
Line coverage: 87.5%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
Read(...)100%210%
Write(...)100%44100%

File(s)

/srv/git/jellyfin/src/Jellyfin.Extensions/Json/Converters/JsonFlagEnumConverter.cs

#LineLine coverage
 1using System;
 2using System.Text.Json;
 3using System.Text.Json.Serialization;
 4
 5namespace Jellyfin.Extensions.Json.Converters;
 6
 7/// <summary>
 8/// Enum flag to json array converter.
 9/// </summary>
 10/// <typeparam name="T">The type of enum.</typeparam>
 11public class JsonFlagEnumConverter<T> : JsonConverter<T>
 12    where T : struct, Enum
 13{
 214    private static readonly T[] _enumValues = Enum.GetValues<T>();
 15
 16    /// <inheritdoc />
 17    public override T Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
 18    {
 019        throw new NotImplementedException();
 20    }
 21
 22    /// <inheritdoc />
 23    public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options)
 24    {
 425        writer.WriteStartArray();
 21626        foreach (var enumValue in _enumValues)
 27        {
 10428            if (value.HasFlag(enumValue))
 29            {
 630                writer.WriteStringValue(enumValue.ToString());
 31            }
 32        }
 33
 434        writer.WriteEndArray();
 435    }
 36}