From 7fc5a412c1a27e903c4ae926f11fcea5bc6aff10 Mon Sep 17 00:00:00 2001 From: Nick Cabatoff Date: Wed, 27 Apr 2022 08:32:31 -0400 Subject: [PATCH] Expose the underlying ReadCloser during restore (#501) --- progress.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/progress.go b/progress.go index 5bdccf17854..d6bf1123173 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{}