Skip to content

Commit

Permalink
Sealed and added internal XML doc comments
Browse files Browse the repository at this point in the history
  • Loading branch information
brantburnett authored and jskeet committed Nov 20, 2024
1 parent f386a3e commit 4ee939c
Showing 1 changed file with 12 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,27 @@

namespace NodaTime.Serialization.SystemTextJson;

internal class NodaNullableConverter<T> : JsonConverter<T?> where T : struct
/// <summary>
/// System.Text.Json converter for <see cref="Nullable{T}"/> value types, wrapping
/// an inner converter.
/// </summary>
/// <typeparam name="T">Value type to be converted.</typeparam>
internal sealed class NodaNullableConverter<T> : JsonConverter<T?> where T : struct
{
private readonly JsonConverter<T> _innerConverter;

/// <summary>
/// Creates a new NodaNullableConverter.
/// </summary>
/// <param name="innerConverter">Inner converter for serializing and deserializing when not null.</param>
public NodaNullableConverter(JsonConverter<T> innerConverter)
{
Preconditions.CheckNotNull(innerConverter, nameof(innerConverter));

_innerConverter = innerConverter;
}

/// <inheritdoc />
public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.Null)
Expand All @@ -29,6 +39,7 @@ public NodaNullableConverter(JsonConverter<T> innerConverter)
return _innerConverter.Read(ref reader, typeToConvert, options);
}

/// <inheritdoc />
public override void Write(Utf8JsonWriter writer, T? value, JsonSerializerOptions options)
{
if (value is null)
Expand Down

0 comments on commit 4ee939c

Please sign in to comment.