private void ParseLiteral(JsonObject.JsonValueType literal, ReadOnlySpan <byte> expected) { if (!_values.Slice(_valuesIndex).StartsWith(expected)) { throw new FormatException("Invalid json, tried to read " + literal.ToString()); } AppendDbRow(literal, _valuesIndex, expected.Length); _valuesIndex += expected.Length; SkipWhitespace(); }
private bool AppendDbRow(JsonObject.JsonValueType type, int valueIndex, int LengthOrNumberOfRows = DbRow.UnknownNumberOfRows) { var newIndex = _dbIndex + DbRow.Size; if (newIndex >= _db.Length) { ResizeDb(); } var dbRow = new DbRow(type, valueIndex, LengthOrNumberOfRows); _db.Span.Slice(_dbIndex).Write(dbRow); _dbIndex = newIndex; return(true); }
public DbRow(JsonObject.JsonValueType type, int valueIndex, int lengthOrNumberOfRows = UnknownNumberOfRows) { Location = valueIndex; Length = lengthOrNumberOfRows; Type = type; }