Ejemplo n.º 1
0
 public static Slinq <T, LinkedContext <T> > Slinq(LinkedHeadTail <T> list, bool release)
 {
     return(new Slinq <T, LinkedContext <T> >(
                skip,
                remove,
                dispose,
                new LinkedContext <T>(list, BacktrackDetector.Borrow(), release)));
 }
                #pragma warning restore 0414

        private LinkedListContext(LinkedListNode <T> node, int step)
        {
            needsMove = false;
            this.node = node;
            this.step = step;

            bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 3
0
                #pragma warning restore 0414

        private FlattenContext(Slinq <Slinq <T, C1>, C2> chained)
        {
            needsMove    = false;
            this.chained = chained;
            selected     = chained.current.isSome ? chained.current.value : new Slinq <T, C1>();

            bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 4
0
                #pragma warning restore 0414

        private PredicateContext(Slinq <T, C> chained, DelegateFunc <T, bool> predicate)
        {
            this.needsMove = false;
            this.chained   = chained;
            this.predicate = predicate;

            this.bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 5
0
                #pragma warning restore 0414

        private ZipContext(Slinq <T, C> left, Slinq <T2, C2> right, ZipRemoveFlags removeFlags)
        {
            this.needsMove   = false;
            this.left        = left;
            this.right       = right;
            this.removeFlags = removeFlags;

            this.bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 6
0
                #pragma warning restore 0414

        private IListContext(IList <T> list, int startIndex, int step)
        {
            this.list  = list;
            this.size  = list.Count;
            this.index = startIndex - step;
            this.step  = step;

            this.bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 7
0
                #pragma warning restore 0414

        private HashSetContext(Slinq <T, C> chained, Disposable <HashSet <T> > hashSet, bool release)
        {
            this.needsMove = false;
            this.chained   = chained;
            this.hashSet   = hashSet;
            this.release   = release;

            this.bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 8
0
                #pragma warning restore 0414

        private AggregateContext(Slinq <T, C> chained, U seed, Func <U, T, U> selector)
        {
            needsMove     = false;
            this.chained  = chained;
            acc           = seed;
            this.selector = selector;

            bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 9
0
                #pragma warning restore 0414

        private EitherContext(Slinq <T, C> left, Slinq <T, C2> right, bool isLeft)
        {
            needsMove   = false;
            this.isLeft = isLeft;
            this.left   = left;
            this.right  = right;

            bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 10
0
                #pragma warning restore 0414

        private SelectSlinqContext(Slinq <T, C> chained, DelegateFunc <T, Slinq <U, UC> > selector)
        {
            this.needsMove = false;
            this.chained   = chained;
            this.selected  = chained.current.isSome ? selector(chained.current.value) : new Slinq <U, UC>();
            this.selector  = selector;

            this.bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 11
0
                #pragma warning restore 0414

        private BufferPredicateContext(Slinq <T, C> slinq, DelegateFunc <T, T, bool> pred)
        {
            needsMove = false;
            chained   = slinq;
            predicate = pred;
            acc       = null;
            release   = ListPool <List <T> > .Instance.Borrow();

            bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 12
0
                #pragma warning restore 0414

        private GroupJoinContext(Lookup <K, T2> lookup, Slinq <T, C> outer, DelegateFunc <T, K> outerSelector, DelegateFunc <T, Slinq <T2, LinkedContext <T2> >, U> resultSelector, bool release)
        {
            this.needsMove      = false;
            this.lookup         = lookup;
            this.outerSelector  = outerSelector;
            this.resultSelector = resultSelector;
            this.chained        = outer;
            this.release        = release;

            this.bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 13
0
                #pragma warning restore 0414

        private JoinContext(Lookup <K, T2> lookup, Slinq <T, C> outer, Func <T, K> outerSelector, Func <T, T2, U> resultSelector, bool release)
        {
            needsMove           = false;
            this.lookup         = lookup;
            this.outerSelector  = outerSelector;
            this.resultSelector = resultSelector;
            chained             = outer;
            this.release        = release;

            LinkedHeadTail <T2> iht;

            inner = chained.current.isSome && lookup.dictionary.TryGetValue(outerSelector(chained.current.value), out iht) ? iht.head : null;

            bd = BacktrackDetector.Borrow();
        }
Ejemplo n.º 14
0
                #pragma warning restore 0414

        private OptionContext(Option <T> option)
        {
            this.option = option;

            bd = BacktrackDetector.Borrow();
        }
                #pragma warning restore 0414

        private IEnumerableContext(IEnumerable <T> enumerable)
        {
            enumerator = enumerable.GetEnumerator();

            bd = BacktrackDetector.Borrow();
        }