File tree Expand file tree Collapse file tree 1 file changed +20
-2
lines changed Expand file tree Collapse file tree 1 file changed +20
-2
lines changed Original file line number Diff line number Diff line change 1
1
package progress
2
2
3
- import "io"
3
+ import (
4
+ "fmt"
5
+ "io"
6
+ )
4
7
5
8
// Reader is an [io.ReadCloser] that reports the number of bytes read from it
6
9
// via a callback. The callback is called at most every "updateInterval" bytes.
@@ -51,4 +54,19 @@ func (r *Reader) Close() error {
51
54
return nil
52
55
}
53
56
54
- var _ io.ReadCloser = (* Reader )(nil )
57
+ func (r * Reader ) Seek (offset int64 , whence int ) (int64 , error ) {
58
+ seeker , ok := r .inner .(io.ReadSeeker )
59
+ if ! ok {
60
+ return 0 , fmt .Errorf ("progress.Reader: source reader (%T) is not an io.ReadSeeker" , r .inner )
61
+ }
62
+ n , err := seeker .Seek (offset , whence )
63
+ if err != nil {
64
+ return 0 , err
65
+ }
66
+ r .readBytes = int (n )
67
+ r .progressFn (r .readBytes )
68
+ r .lastUpdate = r .readBytes
69
+ return n , nil
70
+ }
71
+
72
+ var _ io.ReadSeekCloser = (* Reader )(nil )
You can’t perform that action at this time.
0 commit comments