private static void Dispose(ref LinkedContext <T> context, out Option <T> next) { next = new Option <T>(); context.bd.Release(); if (context.release) { context.list.DisposeInBackground(); } }
private static void Skip(ref LinkedContext <T> context, out Option <T> next) { context.bd.DetectBacktrack(); if (context.runner == null) { next = new Option <T>(); context.bd.Release(); if (context.release) { context.list.DisposeInBackground(); } } else { next = new Option <T>(context.runner.value); context.runner = context.runner.next; } }
private static void Remove(ref LinkedContext <T> context, out Option <T> next) { throw new NotSupportedException(); }