Codebase list golang-github-vbauerster-mpb / 77636dd
refactoring: bar_filler Vladimir Bauer 6 years ago
1 changed file(s) with 20 addition(s) and 20 deletion(s). Raw diff Collapse all Expand all
1919
2020 // DefaultBarStyle is applied when bar constructed with *Progress.AddBar method.
2121 //
22 // '1th rune' stands for left boundary rune
22 // '1st rune' stands for left boundary rune
2323 //
24 // '2th rune' stands for fill rune
24 // '2nd rune' stands for fill rune
2525 //
26 // '3th rune' stands for tip rune
26 // '3rd rune' stands for tip rune
2727 //
2828 // '4th rune' stands for empty rune
2929 //
4949 style = DefaultBarStyle
5050 }
5151 bf := &barFiller{
52 format: make([][]byte, utf8.RuneCountInString(style)),
52 format: make([][]byte, utf8.RuneCountInString(style)),
53 reverse: reverse,
5354 }
5455 bf.SetStyle(style)
55 bf.SetReverse(reverse)
5656 return bf
5757 }
5858
6565 src = append(src, []byte(string(r)))
6666 }
6767 copy(s.format, src)
68 if s.reverse {
69 s.tip = s.format[rRevTip]
70 } else {
71 s.tip = s.format[rTip]
72 }
68 s.SetReverse(s.reverse)
7369 }
7470
7571 func (s *barFiller) SetReverse(reverse bool) {
7672 if reverse {
7773 s.tip = s.format[rRevTip]
78 s.flush = func(w io.Writer, bb [][]byte) {
79 for i := len(bb) - 1; i >= 0; i-- {
80 w.Write(bb[i])
81 }
82 }
74 s.flush = reverseFlush
8375 } else {
8476 s.tip = s.format[rTip]
85 s.flush = func(w io.Writer, bb [][]byte) {
86 for i := 0; i < len(bb); i++ {
87 w.Write(bb[i])
88 }
89 }
77 s.flush = normalFlush
9078 }
9179 s.reverse = reverse
9280 }
134122
135123 s.flush(w, bb)
136124 }
125
126 func normalFlush(w io.Writer, bb [][]byte) {
127 for i := 0; i < len(bb); i++ {
128 w.Write(bb[i])
129 }
130 }
131
132 func reverseFlush(w io.Writer, bb [][]byte) {
133 for i := len(bb) - 1; i >= 0; i-- {
134 w.Write(bb[i])
135 }
136 }