Codebase list golang-github-vbauerster-mpb / 665a8a5
refactoring: spinner filler Vladimir Bauer 3 years ago
1 changed file(s) with 3 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
6262 return sf
6363 }
6464
65 func (s *sFiller) Fill(w io.Writer, stat decor.Statistics) {
65 func (s *sFiller) Fill(w io.Writer, stat decor.Statistics) (err error) {
6666 width := internal.CheckRequestedWidth(stat.RequestedWidth, stat.AvailableWidth)
6767
6868 frame := s.frames[s.count%uint(len(s.frames))]
6969 frameWidth := runewidth.StringWidth(stripansi.Strip(frame))
7070
7171 if width < frameWidth {
72 return
72 return nil
7373 }
7474
75 var err error
7675 rest := width - frameWidth
7776 switch s.position {
7877 case positionLeft:
8382 str := strings.Repeat(" ", rest/2) + frame + strings.Repeat(" ", rest/2+rest%2)
8483 _, err = io.WriteString(w, str)
8584 }
86 if err != nil {
87 panic(err)
88 }
8985 s.count++
86 return err
9087 }