public JsonReader(Utf8Span str) { _str = str.Trim(); _index = 0; _insideObject = 0; _insideArray = 0; TokenType = 0; _jsonStartIsObject = (byte)_str[0] == '{'; }
public static void Trim(string input) { // Arrange using BoundedUtf8Span boundedSpan = new BoundedUtf8Span(input); Utf8Span span = boundedSpan.Span; // Act Utf8Span trimmed = span.Trim(); // Assert // Compute the trim manually and ensure it matches the trimmed span's characteristics. ReadOnlySpan <byte> utf8Bytes = span.Bytes; while (!utf8Bytes.IsEmpty) { OperationStatus status = Rune.DecodeFromUtf8(utf8Bytes, out Rune decodedRune, out int bytesConsumed); Assert.Equal(OperationStatus.Done, status); if (!Rune.IsWhiteSpace(decodedRune)) { break; } utf8Bytes = utf8Bytes.Slice(bytesConsumed); } while (!utf8Bytes.IsEmpty) { OperationStatus status = Rune.DecodeLastFromUtf8(utf8Bytes, out Rune decodedRune, out int bytesConsumed); Assert.Equal(OperationStatus.Done, status); if (!Rune.IsWhiteSpace(decodedRune)) { break; } utf8Bytes = utf8Bytes[..^ bytesConsumed];