Codebase list golang-github-vbauerster-mpb / c8f7931
pass *decor.Statistics to bar's new line extend function Vladimir Bauer 7 years ago
3 changed file(s) with 9 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
6565 refill *refill
6666 bufP, bufB, bufA *bytes.Buffer
6767 panicMsg string
68 newLineExtendFn func(io.Writer, bool)
68 newLineExtendFn func(io.Writer, *decor.Statistics)
6969
7070 // following options are assigned to the *Bar
7171 priority int
284284 r := s.draw(tw)
285285 if s.newLineExtendFn != nil {
286286 b.bufNL.Reset()
287 s.newLineExtendFn(b.bufNL, s.completeFlushed)
287 s.newLineExtendFn(b.bufNL, newStatistics(s))
288288 r = io.MultiReader(r, b.bufNL)
289289 }
290290 b.frameReaderCh <- &frameReader{
299299 r := s.draw(tw)
300300 if s.newLineExtendFn != nil {
301301 b.bufNL.Reset()
302 s.newLineExtendFn(b.bufNL, s.completeFlushed)
302 s.newLineExtendFn(b.bufNL, newStatistics(s))
303303 r = io.MultiReader(r, b.bufNL)
304304 }
305305 b.frameReaderCh <- &frameReader{Reader: r}
102102 }
103103 }
104104
105 // BarNewLineExtend takes user defined efn, which is called each render cycle.
106 // Any write to provided writer w of efn, will appear on new line of respective bar.
107 func BarNewLineExtend(efn func(w io.Writer, completed bool)) BarOption {
105 // BarNewLineExtend takes user defined efn, which gets called each render cycle.
106 // Any write to provided writer of efn, will appear on new line of respective bar.
107 func BarNewLineExtend(efn func(io.Writer, *decor.Statistics)) BarOption {
108108 return func(s *bState) {
109109 s.newLineExtendFn = efn
110110 }
2222
2323 for i := 0; i < numBars; i++ {
2424 name := fmt.Sprintf("Bar#%d:", i)
25 efn := func(w io.Writer, completed bool) {
26 if completed {
27 io.WriteString(w, name+" is completed!\n")
25 efn := func(w io.Writer, s *decor.Statistics) {
26 if s.Completed {
27 fmt.Fprintf(w, "Bar id: %d has been completed\n", s.ID)
2828 }
2929 }
3030 bar := p.AddBar(int64(total), mpb.BarNewLineExtend(efn),