aboutsummaryrefslogtreecommitdiff
path: root/src/Jellyfin.Extensions/Json/Utf8JsonExtensions.cs
blob: d06508a26ebb120204f407b26bb3d15ed2a6fcb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System.Text.Json;

namespace Jellyfin.Extensions.Json;

/// <summary>
/// Extensions for Utf8JsonReader and Utf8JsonWriter.
/// </summary>
public static class Utf8JsonExtensions
{
    /// <summary>
    /// Determines if the reader contains an empty string.
    /// </summary>
    /// <param name="reader">The reader.</param>
    /// <returns>Whether the reader contains an empty string.</returns>
    public static bool IsEmptyString(this Utf8JsonReader reader)
        => reader.TokenType == JsonTokenType.String
           && ((reader.HasValueSequence && reader.ValueSequence.IsEmpty)
               || (!reader.HasValueSequence && reader.ValueSpan.IsEmpty));

    /// <summary>
    /// Determines if the reader contains a null value.
    /// </summary>
    /// <param name="reader">The reader.</param>
    /// <returns>Whether the reader contains null.</returns>
    public static bool IsNull(this Utf8JsonReader reader)
        => reader.TokenType == JsonTokenType.Null;
}