diff --git a/progress.go b/progress.go index 5bdccf17..d6bf1123 100644 --- a/progress.go +++ b/progress.go @@ -119,12 +119,28 @@ func newCountingReader(r io.Reader) *countingReader { type countingReadCloser struct { *countingReader - io.Closer + readCloser io.ReadCloser } func newCountingReadCloser(rc io.ReadCloser) *countingReadCloser { return &countingReadCloser{ countingReader: newCountingReader(rc), - Closer: rc, + readCloser: rc, } } + +func (c countingReadCloser) Close() error { + return c.readCloser.Close() +} + +func (c countingReadCloser) WrappedReadCloser() io.ReadCloser { + return c.readCloser +} + +// ReadCloserWrapper allows access to an underlying ReadCloser from a wrapper. +type ReadCloserWrapper interface { + io.ReadCloser + WrappedReadCloser() io.ReadCloser +} + +var _ ReadCloserWrapper = &countingReadCloser{}