Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NullableConverter.cs
Go to the documentation of this file.
2
3internal sealed class NullableConverter<T> : JsonConverter<T?> where T : struct
4{
5 private readonly JsonConverter<T> _converter;
6
12
14 {
15 if (reader.TokenType == JsonTokenType.Null)
16 {
17 return null;
18 }
19 return _converter.Read(ref reader, typeof(T), options);
20 }
21
23 {
24 if (!value.HasValue)
25 {
26 writer.WriteNullValue();
27 }
28 else
29 {
30 _converter.Write(writer, value.Value, options);
31 }
32 }
33
35 {
36 if (reader.TokenType == JsonTokenType.Null)
37 {
38 return null;
39 }
40 return _converter.ReadNumberWithCustomHandling(ref reader, numberHandling, options);
41 }
42
44 {
45 if (!value.HasValue)
46 {
47 writer.WriteNullValue();
48 }
49 else
50 {
51 _converter.WriteNumberWithCustomHandling(writer, value.Value, handling);
52 }
53 }
54}
override? T ReadNumberWithCustomHandling(ref Utf8JsonReader reader, JsonNumberHandling numberHandling, JsonSerializerOptions options)
override void WriteNumberWithCustomHandling(Utf8JsonWriter writer, T? value, JsonNumberHandling handling)
override? T Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
override void Write(Utf8JsonWriter writer, T? value, JsonSerializerOptions options)