Codebase list golang-github-vbauerster-mpb / ca417c7
refactoring: extenderFunc Change signature of extenderFunc a bit. Assign default extender on bState. minor: var rename Vladimir Bauer 1 year, 10 months ago
3 changed file(s) with 11 addition(s) and 11 deletion(s). Raw diff Collapse all Expand all
2626 }
2727
2828 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)
3030
3131 // bState is actual bar's state.
3232 type bState struct {
426426 b.frameCh <- frame
427427 return
428428 }
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)
433430 if s.aborted || s.completed() {
434431 frame.shutdown = s.shutdown
435432 frame.rmOnComplete = s.rmOnComplete
121121
122122 func makeExtenderFunc(filler BarFiller, rev bool) extenderFunc {
123123 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) {
125125 err := filler.Fill(buf, stat)
126126 if err != nil {
127127 buf.Reset()
128128 return rows, err
129129 }
130130 for {
131 b, err := buf.ReadBytes('\n')
131 line, err := buf.ReadBytes('\n')
132132 if err != nil {
133133 buf.Reset()
134134 break
135135 }
136 rows = append(rows, bytes.NewReader(b))
136 rows = append(rows, bytes.NewReader(line))
137137 }
138138 return rows, err
139139 }
140
141140 if !rev {
142141 return base
143142 }
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...)
146145 if err != nil {
147146 return rows, err
148147 }
1010 "time"
1111
1212 "github.com/vbauerster/mpb/v8/cwriter"
13 "github.com/vbauerster/mpb/v8/decor"
1314 )
1415
1516 const defaultRefreshRate = 150 * time.Millisecond
434435 filler: filler,
435436 renderReq: s.renderReq,
436437 autoRefresh: s.autoRefresh,
438 extender: func(_ decor.Statistics, rows ...io.Reader) ([]io.Reader, error) {
439 return rows, nil
440 },
437441 }
438442
439443 if total > 0 {