System\Text\Json\Serialization\Converters\Value\HalfConverter.cs (25)
12internal sealed class HalfConverter : JsonPrimitiveConverter<Half>
21public override Half Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
31public override void Write(Utf8JsonWriter writer, Half value, JsonSerializerOptions options)
36private static Half ReadCore(ref Utf8JsonReader reader)
38Half result;
61Debug.Assert(!Half.IsNaN(result) && !Half.IsInfinity(result));
65private static void WriteCore(Utf8JsonWriter writer, Half value)
72internal override Half ReadAsPropertyNameCore(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
78internal override void WriteAsPropertyNameCore(Utf8JsonWriter writer, Half value, JsonSerializerOptions options, bool isWritingExtensionDataProperty)
85internal override Half ReadNumberWithCustomHandling(ref Utf8JsonReader reader, JsonNumberHandling handling, JsonSerializerOptions options)
91if (TryGetFloatingPointConstant(ref reader, out Half value))
100if (!TryGetFloatingPointConstant(ref reader, out Half value))
112internal override void WriteNumberWithCustomHandling(Utf8JsonWriter writer, Half value, JsonNumberHandling handling)
138private static bool TryGetFloatingPointConstant(ref Utf8JsonReader reader, out Half value)
146private static void WriteFloatingPointConstant(Utf8JsonWriter writer, Half value)
148if (Half.IsNaN(value))
152else if (Half.IsPositiveInfinity(value))
156else if (Half.IsNegativeInfinity(value))
166private static bool TryParse(ReadOnlySpan<byte> buffer, out Half result)
168bool success = Half.TryParse(buffer, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out result);
173(!Half.IsNaN(result) || buffer.SequenceEqual(JsonConstants.NaNValue)) &&
174(!Half.IsPositiveInfinity(result) || buffer.SequenceEqual(JsonConstants.PositiveInfinityValue)) &&
175(!Half.IsNegativeInfinity(result) || buffer.SequenceEqual(JsonConstants.NegativeInfinityValue));
180Half value, out int written)