< Summary - Jellyfin

Information
Class: Jellyfin.Extensions.Json.Converters.JsonStringConverter
Assembly: Jellyfin.Extensions
File(s): /srv/git/jellyfin/src/Jellyfin.Extensions/Json/Converters/JsonStringConverter.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 30
Line coverage: 100%
Branch coverage
75%
Covered branches: 3
Total branches: 4
Branch coverage: 75%
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
Read(...)100%22100%
Write(...)100%11100%
GetRawValue(...)50%22100%

File(s)

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

#LineLine coverage
 1using System;
 2using System.Buffers;
 3using System.Text;
 4using System.Text.Json;
 5using System.Text.Json.Serialization;
 6
 7namespace Jellyfin.Extensions.Json.Converters
 8{
 9    /// <summary>
 10    /// Converter to allow the serializer to read strings.
 11    /// </summary>
 12    public class JsonStringConverter : JsonConverter<string?>
 13    {
 14        /// <inheritdoc />
 15        public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
 3481916            => reader.TokenType == JsonTokenType.String ? reader.GetString() : GetRawValue(reader);
 17
 18        /// <inheritdoc />
 19        public override void Write(Utf8JsonWriter writer, string? value, JsonSerializerOptions options)
 105420            => writer.WriteStringValue(value);
 21
 22        private static string GetRawValue(Utf8JsonReader reader)
 23        {
 424            var utf8Bytes = reader.HasValueSequence
 425                ? reader.ValueSequence.ToArray()
 426                : reader.ValueSpan;
 427            return Encoding.UTF8.GetString(utf8Bytes);
 28        }
 29    }
 30}