public static bool TryReadInt32(ref ReadOnlySpan <byte> remaining, out int result, char standardFormat) { result = default; if (standardFormat != '\0') { if (!TryReadUtf8Bytes(ref remaining, out var bytes)) { return(false); } return(Utf8Reader.TryReadInt32(ref bytes, out result, standardFormat)); } result = default; if (!TryReadInt64(ref remaining, out long longResult, standardFormat)) { return(false); } if (longResult > int.MaxValue || longResult < int.MinValue) { return(false); } result = (int)longResult; return(true); }
public static bool TryReadInt32(ref ReadOnlySpan <byte> remaining, out int result, char standardFormat) { result = default; switch (GetTokenType(ref remaining)) { case JsonTokenType.Number: if (!Utf8Reader.TryReadInt32(ref remaining, out result, JsonSerializer.IntFormat.Symbol)) { return(false); } return(true); case JsonTokenType.String: remaining = remaining.Slice(1); if (!Utf8Reader.TryReadInt32(ref remaining, out result, standardFormat)) { return(false); } if (remaining.Length == 0 || remaining[0] != '"') { return(false); } remaining = remaining.Slice(1); return(true); } return(false); }