public static Interval <T, TComparer> Parse(ReadOnlySpan <char> input, ParseSpan <T> elementParser) { if (elementParser is null) { Throw.ArgumentNullException(nameof(elementParser)); } return(Parser.ParseInterval <T, TComparer>(input, elementParser)); }
} // END WriteInfo private static void RunTest(ReadOnlySpan <char> span, int spanLen, Stopwatch stopWatch, List <int> parsed, ParseSpan parse) { int start = 0, size = 6; stopWatch.Restart(); while (start + size < spanLen) { parsed.Add( parse(span.Slice(start, size)) ); NextSlice(ref start, ref size); } parsed.Add( SpanToInt.UseLoop(span.Slice(start, spanLen - start)) ); stopWatch.Stop(); } // END RunTest
public SpanElementParser(ParseSpan <T> parser) => _parseSpan = parser;
public Parser(ParseSpan <T> parser) => _parser = parser;
public static CompositeInterval <T> Parse(ReadOnlySpan <char> input, ParseSpan <T> elementParser) => CompositeInterval <T, DefaultValueComparer <T> > .Parse(input, elementParser);