diff --git a/README.md b/README.md index 51ecae0..10d953c 100644 --- a/README.md +++ b/README.md @@ -28,87 +28,87 @@ #### [Rendering single bar](examples/singleBar/main.go) ```go - p := mpb.New( - // override default (80) width - mpb.WithWidth(64), - // override default "[=>-]" format - mpb.WithFormat("╢▌▌░╟"), - // override default 120ms refresh rate - mpb.WithRefreshRate(180*time.Millisecond), - ) + p := mpb.New( + // override default (80) width + mpb.WithWidth(64), + // override default "[=>-]" format + mpb.WithFormat("╢▌▌░╟"), + // override default 120ms refresh rate + mpb.WithRefreshRate(180*time.Millisecond), + ) - total := 100 - name := "Single Bar:" - startBlock := make(chan time.Time) - // adding a single bar - bar := p.AddBar(int64(total), - mpb.PrependDecorators( - // Display our name with one space on the right - decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}), - // Replace ETA decorator with message, OnComplete event - decor.OnComplete( - // ETA decorator with default eta age, and width reservation of 4 - decor.ETA(decor.ET_STYLE_GO, 0, startBlock, decor.WC{W: 4}), - "done", - ), - ), - mpb.AppendDecorators( - decor.Percentage(), - ), - ) + total := 100 + name := "Single Bar:" + startBlock := make(chan time.Time) + // adding a single bar + bar := p.AddBar(int64(total), + mpb.PrependDecorators( + // Display our name with one space on the right + decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}), + // Replace ETA decorator with message, OnComplete event + decor.OnComplete( + // ETA decorator with default eta age, and width reservation of 4 + decor.ETA(decor.ET_STYLE_GO, 0, startBlock, decor.WC{W: 4}), + "done", + ), + ), + mpb.AppendDecorators( + decor.Percentage(), + ), + ) - // simulating some work - max := 100 * time.Millisecond - for i := 0; i < total; i++ { - // update start block time, required for ETA calculation - startBlock <- time.Now() - time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10) - // Increment by 1 (there is bar.IncrBy(int) method, if needed) - bar.Increment() - } - // wait for our bar to complete and flush - p.Wait() + // simulating some work + max := 100 * time.Millisecond + for i := 0; i < total; i++ { + // update start block time, required for ETA calculation + startBlock <- time.Now() + time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10) + // Increment by 1 (there is bar.IncrBy(int) method, if needed) + bar.Increment() + } + // wait for our bar to complete and flush + p.Wait() ``` #### [Rendering multiple bars](examples/simple/main.go) ```go - var wg sync.WaitGroup - p := mpb.New(mpb.WithWaitGroup(&wg)) - total, numBars := 100, 3 - wg.Add(numBars) + var wg sync.WaitGroup + p := mpb.New(mpb.WithWaitGroup(&wg)) + total, numBars := 100, 3 + wg.Add(numBars) - for i := 0; i < numBars; i++ { - name := fmt.Sprintf("Bar#%d:", i) - startBlock := make(chan time.Time) - bar := p.AddBar(int64(total), - mpb.PrependDecorators( - // Display our name with one space on the right - decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}), - // decor.DSyncWidth bit enables same column width synchronization - decor.Percentage(decor.WCSyncWidth), - ), - mpb.AppendDecorators( - // Replace ETA decorator with message, OnComplete event - decor.OnComplete( - // ETA decorator with default eta age, and width reservation of 3 - decor.ETA(decor.ET_STYLE_GO, 0, startBlock, decor.WC{W: 3}), - "done!", - ), - ), - ) - // simulating some work - go func() { - defer wg.Done() - max := 100 * time.Millisecond - for i := 0; i < total; i++ { - startBlock <- time.Now() - time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10) - bar.Increment() - } - }() - } - // wait for all bars to complete and flush - p.Wait() + for i := 0; i < numBars; i++ { + name := fmt.Sprintf("Bar#%d:", i) + startBlock := make(chan time.Time) + bar := p.AddBar(int64(total), + mpb.PrependDecorators( + // Display our name with one space on the right + decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}), + // decor.DSyncWidth bit enables same column width synchronization + decor.Percentage(decor.WCSyncWidth), + ), + mpb.AppendDecorators( + // Replace ETA decorator with message, OnComplete event + decor.OnComplete( + // ETA decorator with default eta age, and width reservation of 3 + decor.ETA(decor.ET_STYLE_GO, 0, startBlock, decor.WC{W: 3}), + "done!", + ), + ), + ) + // simulating some work + go func() { + defer wg.Done() + max := 100 * time.Millisecond + for i := 0; i < total; i++ { + startBlock <- time.Now() + time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10) + bar.Increment() + } + }() + } + // wait for all bars to complete and flush + p.Wait() ``` #### [Dynamic total](examples/dynTotal/main.go)