in src/Elastic.Clients.Elasticsearch/_Shared/Next/DoubleWithFractionalPortionConverter.cs [27:62]
public override double Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType is not JsonTokenType.String)
{
return reader.GetDouble();
}
if (options.NumberHandling.HasFlag(JsonNumberHandling.AllowNamedFloatingPointLiterals))
{
if (reader.ValueTextEquals(NaN))
{
return double.NaN;
}
if (reader.ValueTextEquals(PositiveInfinity))
{
return double.PositiveInfinity;
}
if (reader.ValueTextEquals(NegativeInfinity))
{
return double.NegativeInfinity;
}
}
if (!options.NumberHandling.HasFlag(JsonNumberHandling.AllowReadingFromString))
{
return reader.GetDouble();
}
Debug.Assert(!reader.HasValueSequence);
return Utf8Parser.TryParse(reader.ValueSpan, out double result, out var consumed) && (consumed == reader.ValueSpan.Length)
? result
: throw new JsonException("Unable to convert JSON string value to 'double'.");
}