1234567891011121314151617181920212223242526272829303132 |
- package filex
- import "gopkg.in/cheggaaa/pb.v1"
- type (
- // A Scanner is used to read lines.
- Scanner interface {
- // Scan checks if has remaining to read.
- Scan() bool
- // Text returns next line.
- Text() string
- }
- progressScanner struct {
- Scanner
- bar *pb.ProgressBar
- }
- )
- // NewProgressScanner returns a Scanner with progress indicator.
- func NewProgressScanner(scanner Scanner, bar *pb.ProgressBar) Scanner {
- return &progressScanner{
- Scanner: scanner,
- bar: bar,
- }
- }
- func (ps *progressScanner) Text() string {
- s := ps.Scanner.Text()
- ps.bar.Add64(int64(len(s)) + 1) // take newlines into account
- return s
- }
|