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