diff --git a/bar_filler.go b/bar_filler.go index 7a4b858..a08e7d1 100644 --- a/bar_filler.go +++ b/bar_filler.go @@ -27,12 +27,13 @@ noBrackets bool } -func newDefaultBarFiller() Filler { - bf := &barFiller{ +// NewBarFiller bar Filler used with *Progress.AddBar +func NewBarFiller() Filler { + filler := &barFiller{ format: make([][]byte, utf8.RuneCountInString(defaultBarStyle)), } - bf.setStyle(defaultBarStyle) - return bf + filler.setStyle(defaultBarStyle) + return filler } func (s *barFiller) setStyle(style string) { diff --git a/progress.go b/progress.go index c01e5ca..d2dc553 100644 --- a/progress.go +++ b/progress.go @@ -98,23 +98,19 @@ // AddBar creates a new progress bar and adds to the container. func (p *Progress) AddBar(total int64, options ...BarOption) *Bar { - return p.Add(total, newDefaultBarFiller(), options...) + return p.Add(total, NewBarFiller(), options...) } // AddSpinner creates a new spinner bar and adds to the container. func (p *Progress) AddSpinner(total int64, alignment SpinnerAlignment, options ...BarOption) *Bar { - filler := &spinnerFiller{ - frames: defaultSpinnerStyle, - alignment: alignment, - } - return p.Add(total, filler, options...) + return p.Add(total, NewSpinnerFiller(alignment), options...) } // Add creates a bar which renders itself by provided filler. // Set total to 0, if you plan to update it later. func (p *Progress) Add(total int64, filler Filler, options ...BarOption) *Bar { if filler == nil { - filler = newDefaultBarFiller() + filler = NewBarFiller() } p.bwg.Add(1) result := make(chan *Bar) diff --git a/spinner_filler.go b/spinner_filler.go index fdd67a8..5353503 100644 --- a/spinner_filler.go +++ b/spinner_filler.go @@ -26,6 +26,15 @@ alignment SpinnerAlignment } +// NewSpinnerFiller spinner Filler used with *Progress.AddSpinner +func NewSpinnerFiller(alignment SpinnerAlignment) Filler { + filler := &spinnerFiller{ + frames: defaultSpinnerStyle, + alignment: alignment, + } + return filler +} + func (s *spinnerFiller) Fill(w io.Writer, width int, stat *decor.Statistics) { frame := s.frames[s.count%uint(len(s.frames))]