public BufferOverlapEnumerator(IAsyncEnumerator <TSource> source, int size, int skip, Func <TCollection> bufferSupplier)
 {
     _source         = source;
     _size           = size;
     _skip           = skip;
     _bufferSupplier = bufferSupplier;
     _buffers        = new ArrayQueue <TCollection>(16);
 }
 public TakeLastEnumerator(IAsyncEnumerator <T> source, int size)
 {
     _source = source;
     _size   = size;
     _queue  = new ArrayQueue <T>(16);
 }
 public SkipLastEnumerable(IAsyncEnumerator <T> source, int n)
 {
     _source = source;
     _size   = n;
     _queue  = new ArrayQueue <T>(16);
 }