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