refactoring: extenderFunc
Change signature of extenderFunc a bit. Assign default extender on
bState.
minor: var rename
Vladimir Bauer
1 year, 10 months ago
| 26 | 26 |
}
|
| 27 | 27 |
|
| 28 | 28 |
type syncTable [2][]chan int
|
| 29 | |
type extenderFunc func([]io.Reader, decor.Statistics) ([]io.Reader, error)
|
|
29 |
type extenderFunc func(decor.Statistics, ...io.Reader) ([]io.Reader, error)
|
| 30 | 30 |
|
| 31 | 31 |
// bState is actual bar's state.
|
| 32 | 32 |
type bState struct {
|
|
| 426 | 426 |
b.frameCh <- frame
|
| 427 | 427 |
return
|
| 428 | 428 |
}
|
| 429 | |
frame.rows = append(frame.rows, r)
|
| 430 | |
if s.extender != nil {
|
| 431 | |
frame.rows, frame.err = s.extender(frame.rows, stat)
|
| 432 | |
}
|
|
429 |
frame.rows, frame.err = s.extender(stat, r)
|
| 433 | 430 |
if s.aborted || s.completed() {
|
| 434 | 431 |
frame.shutdown = s.shutdown
|
| 435 | 432 |
frame.rmOnComplete = s.rmOnComplete
|
| 121 | 121 |
|
| 122 | 122 |
func makeExtenderFunc(filler BarFiller, rev bool) extenderFunc {
|
| 123 | 123 |
buf := new(bytes.Buffer)
|
| 124 | |
base := func(rows []io.Reader, stat decor.Statistics) ([]io.Reader, error) {
|
|
124 |
base := func(stat decor.Statistics, rows ...io.Reader) ([]io.Reader, error) {
|
| 125 | 125 |
err := filler.Fill(buf, stat)
|
| 126 | 126 |
if err != nil {
|
| 127 | 127 |
buf.Reset()
|
| 128 | 128 |
return rows, err
|
| 129 | 129 |
}
|
| 130 | 130 |
for {
|
| 131 | |
b, err := buf.ReadBytes('\n')
|
|
131 |
line, err := buf.ReadBytes('\n')
|
| 132 | 132 |
if err != nil {
|
| 133 | 133 |
buf.Reset()
|
| 134 | 134 |
break
|
| 135 | 135 |
}
|
| 136 | |
rows = append(rows, bytes.NewReader(b))
|
|
136 |
rows = append(rows, bytes.NewReader(line))
|
| 137 | 137 |
}
|
| 138 | 138 |
return rows, err
|
| 139 | 139 |
}
|
| 140 | |
|
| 141 | 140 |
if !rev {
|
| 142 | 141 |
return base
|
| 143 | 142 |
}
|
| 144 | |
return func(rows []io.Reader, stat decor.Statistics) ([]io.Reader, error) {
|
| 145 | |
rows, err := base(rows, stat)
|
|
143 |
return func(stat decor.Statistics, rows ...io.Reader) ([]io.Reader, error) {
|
|
144 |
rows, err := base(stat, rows...)
|
| 146 | 145 |
if err != nil {
|
| 147 | 146 |
return rows, err
|
| 148 | 147 |
}
|
| 10 | 10 |
"time"
|
| 11 | 11 |
|
| 12 | 12 |
"github.com/vbauerster/mpb/v8/cwriter"
|
|
13 |
"github.com/vbauerster/mpb/v8/decor"
|
| 13 | 14 |
)
|
| 14 | 15 |
|
| 15 | 16 |
const defaultRefreshRate = 150 * time.Millisecond
|
|
| 434 | 435 |
filler: filler,
|
| 435 | 436 |
renderReq: s.renderReq,
|
| 436 | 437 |
autoRefresh: s.autoRefresh,
|
|
438 |
extender: func(_ decor.Statistics, rows ...io.Reader) ([]io.Reader, error) {
|
|
439 |
return rows, nil
|
|
440 |
},
|
| 437 | 441 |
}
|
| 438 | 442 |
|
| 439 | 443 |
if total > 0 {
|