summaryrefslogtreecommitdiff
path: root/vendor/github.com/vbauerster/mpb/v4/decor/spinner.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/vbauerster/mpb/v4/decor/spinner.go')
-rw-r--r--vendor/github.com/vbauerster/mpb/v4/decor/spinner.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/vbauerster/mpb/v4/decor/spinner.go b/vendor/github.com/vbauerster/mpb/v4/decor/spinner.go
new file mode 100644
index 000000000..24f553142
--- /dev/null
+++ b/vendor/github.com/vbauerster/mpb/v4/decor/spinner.go
@@ -0,0 +1,35 @@
+package decor
+
+var defaultSpinnerStyle = []string{"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"}
+
+// Spinner returns spinner decorator.
+//
+// `frames` spinner frames, if nil or len==0, default is used
+//
+// `wcc` optional WC config
+func Spinner(frames []string, wcc ...WC) Decorator {
+ var wc WC
+ for _, widthConf := range wcc {
+ wc = widthConf
+ }
+ if len(frames) == 0 {
+ frames = defaultSpinnerStyle
+ }
+ d := &spinnerDecorator{
+ WC: wc.Init(),
+ frames: frames,
+ }
+ return d
+}
+
+type spinnerDecorator struct {
+ WC
+ frames []string
+ count uint
+}
+
+func (d *spinnerDecorator) Decor(st *Statistics) string {
+ frame := d.frames[d.count%uint(len(d.frames))]
+ d.count++
+ return d.FormatMsg(frame)
+}