Codebase list golang-github-vbauerster-mpb / e9d9b2f
bar filler: flush dry Vladimir Bauer 5 years ago
1 changed file(s) with 7 addition(s) and 14 deletion(s). Raw diff Collapse all Expand all
104104 }
105105
106106 func (s *barStyle) Build() BarFiller {
107 bf := &bFiller{
108 flush: regFlush,
109 }
107 bf := new(bFiller)
110108 if s.rev {
111 bf.flush = revFlush
109 bf.flush = func(dst io.Writer, filling, padding [][]byte) {
110 flush(dst, padding, filling)
111 }
112 } else {
113 bf.flush = flush
112114 }
113115 bf.components[iLbound] = &component{
114116 width: runewidth.StringWidth(stripansi.Strip(s.lbound)),
206208 s.flush(w, filling, padding)
207209 }
208210
209 func regFlush(dst io.Writer, filling, padding [][]byte) {
211 func flush(dst io.Writer, filling, padding [][]byte) {
210212 for i := len(filling) - 1; i >= 0; i-- {
211213 dst.Write(filling[i])
212214 }
214216 dst.Write(padding[i])
215217 }
216218 }
217
218 func revFlush(dst io.Writer, filling, padding [][]byte) {
219 for i := len(padding) - 1; i >= 0; i-- {
220 dst.Write(padding[i])
221 }
222 for i := 0; i < len(filling); i++ {
223 dst.Write(filling[i])
224 }
225 }