private static bool TryEncodeSpans(string text, Func<string, int, TextSpan> spanGenerator, out EncodedSpans encodedSpans) { encodedSpans = default(EncodedSpans); for (int start = 0, b = 0; start < text.Length; ) { var span = spanGenerator(text, start); if (span.IsEmpty) { // All done break; } int gap = span.Start - start; Debug.Assert(gap >= 0, "Bad generator."); if (b >= MaxShortSpans || span.Length > MaxLength || gap > MaxGap) { // Too many spans, or span cannot be encoded. return false; } encodedSpans[b++] = Encode(gap, span.Length); start = span.End; } return true; }
private StringBreaks(EncodedSpans encodedSpans) { this._encodedSpans = encodedSpans; this._spans = null; }
private StringBreaks(List<TextSpan> spans) { this._encodedSpans = default(EncodedSpans); this._spans = spans; }
private StringBreaks(EncodedSpans encodedSpans) { _encodedSpans = encodedSpans; _spans = null; }
private static bool TryEncodeSpans(string text, Func <string, int, TextSpan> spanGenerator, out EncodedSpans encodedSpans) { encodedSpans = default(EncodedSpans); for (int start = 0, b = 0; start < text.Length;) { var span = spanGenerator(text, start); if (span.IsEmpty) { // All done break; } int gap = span.Start - start; Debug.Assert(gap >= 0, "Bad generator."); if (b >= MaxShortSpans || span.Length > MaxLength || gap > MaxGap) { // Too many spans, or span cannot be encoded. return(false); } encodedSpans[b++] = Encode(gap, span.Length); start = span.End; } return(true); }
private StringBreaks(ArrayBuilder <TextSpan> spans) { _encodedSpans = default(EncodedSpans); _spans = spans; }
private StringBreaks(List <TextSpan> spans) { _encodedSpans = default(EncodedSpans); _spans = spans; }