public static Utf8String GetLine(this Utf8String src) { int pos; if (!src.TrySearchAscii((byte)'\n', 0, out pos)) { return(src); } return(src.Subbytes(0, pos + 1)); }
private static ListTreeNode <JsonValue> ParseString(ListTreeNode <JsonValue> tree, Utf8String segment) { int pos; if (segment.TrySearchAscii((Byte)'"', 1, out pos)) { return(tree.AddValue(segment.Subbytes(0, pos + 1).Bytes, ValueNodeType.String)); } else { throw new ParserException("no close string: " + segment); } }
private static TomlValue ParseRHS(Utf8String segment, int parentIndex) { switch ((char)segment[0]) { case '+': case '-': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (segment.IsInt) { return(new TomlValue(segment.SplitInteger(), TomlValueType.Integer, parentIndex)); } else { return(new TomlValue(segment, TomlValueType.Float, parentIndex)); } case '"': { int pos; if (segment.TrySearchAscii((Byte)'"', 1, out pos)) { return(new TomlValue(segment.Subbytes(0, pos + 1), TomlValueType.BasicString, parentIndex)); } else { throw new ParserException("no close string: " + segment); } } case '[': { throw new NotImplementedException(); } } throw new NotImplementedException(); }
public JsonPointer(Utf8String pointer) : this() { int pos; if (!pointer.TrySearchAscii((Byte)'/', 0, out pos)) { throw new ArgumentException(); } if (pos != 0) { throw new ArgumentException(); } var splited = pointer.Split((Byte)'/').ToArray(); Path = new ArraySegment <Utf8String>(splited, 1, splited.Length - 1); }