public override double Read()

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'.");
	}