public static IReadOnlySpanList <T> GetSpanList <T>(this IIndexableSpans <T> model)
        {
            if (model == null)
            {
                return(IndexableSpans.Empty <T>());
            }

            return(new IndexableSpanListAdapter <T>(model));
        }
Example #2
0
        public static ListSegment <T> GetSpans <T>(this IReadOnlyList <T> spans, int start, int length)
            where T : ObjectModel.Span
        {
            IIndexableSpans <T> spansList = spans as IIndexableSpans <T>;

            if (spansList != null)
            {
                return(spansList.GetSpans(start: start, length: length));
            }

            return(RangeHelper.GetRange(spans, new Range(start, length),
                                        minimumComparer: (range, span) => RangeHelper.MinCompare(range, new Range(span.Start, span.Length), inclusive: true),
                                        maximumComparer: (range, span) => RangeHelper.MaxCompare(range, new Range(span.Start, span.Length), inclusive: true)));
        }
 public IndexableSpanListAdapter(IIndexableSpans <T> model)
 {
     this.model = model;
 }