public void CopyTo(Stream destination)
        {
            int bufferSize = Stream2.ResolveBufferSize(this);

            CopyTo(destination, bufferSize);
        }
 public virtual Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
 => Stream2.WriteAsyncInternal(this, buffer, offset, count, cancellationToken);
 public virtual Task FlushAsync(CancellationToken cancellationToken)
 => Stream2.FlushAsyncInternal(this, cancellationToken);
 public virtual Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken)
 {
     Stream2.ValidateCopyToArgs(this, destination, bufferSize);
     return(Stream2.CopyToInternalAsync(this, destination, bufferSize, cancellationToken));
 }
        public Task CopyToAsync(Stream destination)
        {
            int bufferSize = Stream2.ResolveBufferSize(this);

            return(CopyToAsync(destination, bufferSize, default(CancellationToken)));
        }
 public virtual void CopyTo(Stream destination, int bufferSize)
 {
     Stream2.ValidateCopyToArgs(this, destination, bufferSize);
     Stream2.CopyToInternal(this, destination, bufferSize);
 }