Codebase list golang-github-vbauerster-mpb / 51d6dad
prefer + for string concat benchmark shows fmt.Sprint has no advatage Vladimir Bauer 2 years ago
5 changed file(s) with 11 addition(s) and 14 deletion(s). Raw diff Collapse all Expand all
00 package main
11
22 import (
3 "fmt"
43 "math/rand"
54 "time"
65
1615 name := "Complex Filler:"
1716 bs := mpb.BarStyle()
1817 bs = bs.LboundMeta(func(s string) string {
19 return fmt.Sprint("\033[34m", s, "\033[0m") // blue
18 return "\033[34m" + s + "\033[0m" // blue
2019 })
2120 bs = bs.Filler("_").FillerMeta(func(s string) string {
22 return fmt.Sprint("\033[36m", s, "\033[0m") // cyan
21 return "\033[36m" + s + "\033[0m" // cyan
2322 })
2423 bs = bs.Tip("⛵").TipMeta(func(s string) string {
25 return fmt.Sprint("\033[31m", s, "\033[0m") // red
24 return "\033[31m" + s + "\033[0m" // red
2625 })
2726 bs = bs.TipOnComplete() // leave tip on complete
2827 bs = bs.Padding("_").PaddingMeta(func(s string) string {
29 return fmt.Sprint("\033[36m", s, "\033[0m") // cyan
28 return "\033[36m" + s + "\033[0m" // cyan
3029 })
3130 bs = bs.RboundMeta(func(s string) string {
32 return fmt.Sprint("\033[34m", s, "\033[0m") // blue
31 return "\033[34m" + s + "\033[0m" // blue
3332 })
3433 bar := p.New(int64(total), bs,
3534 mpb.PrependDecorators(decor.Name(name)),
00 package main
11
22 import (
3 "fmt"
43 "math/rand"
54 "time"
65
1615 name := "Single Bar:"
1716 bar := p.New(int64(total),
1817 mpb.BarStyle().Tip(`-`, `\`, `|`, `/`).TipMeta(func(s string) string {
19 return fmt.Sprint("\033[31m", s, "\033[0m") // red
18 return "\033[31m" + s + "\033[0m" // red
2019 }),
2120 mpb.PrependDecorators(decor.Name(name)),
2221 mpb.AppendDecorators(decor.Percentage()),
2323 if cond {
2424 s := mpb.SpinnerStyle("∙∙∙", "●∙∙", "∙●∙", "∙∙●", "∙∙∙")
2525 return s.Meta(func(s string) string {
26 return fmt.Sprint("\033[31m", s, "\033[0m") // red
26 return "\033[31m" + s + "\033[0m" // red
2727 })
2828 }
2929 return mpb.BarStyle().Lbound("╢").Filler("▌").Tip("▌").Padding("░").Rbound("╟")
00 package mpb
11
22 import (
3 "fmt"
43 "io"
54 "strings"
65
7473 switch s.position {
7574 case positionLeft:
7675 sf.position = func(frame string, padWidth int) string {
77 return fmt.Sprint(frame, strings.Repeat(" ", padWidth))
76 return frame + strings.Repeat(" ", padWidth)
7877 }
7978 case positionRight:
8079 sf.position = func(frame string, padWidth int) string {
81 return fmt.Sprint(strings.Repeat(" ", padWidth), frame)
80 return strings.Repeat(" ", padWidth) + frame
8281 }
8382 default:
8483 sf.position = func(frame string, padWidth int) string {
85 return fmt.Sprint(strings.Repeat(" ", padWidth/2), frame, strings.Repeat(" ", padWidth/2+padWidth%2))
84 return strings.Repeat(" ", padWidth/2) + frame + strings.Repeat(" ", padWidth/2+padWidth%2)
8685 }
8786 }
8887 return sf
248248 decor.Meta(
249249 decor.Any(td1),
250250 func(s string) string {
251 return fmt.Sprint("\x1b[31;1m", s, "\x1b[0m")
251 return "\x1b[31;1m" + s + "\x1b[0m"
252252 },
253253 ),
254254 ),