Codebase list golang-github-vbauerster-mpb / 2ebe04d
Refactoring: fmtRunes to barRunes Vladimir Bauer 8 years ago
2 changed file(s) with 16 addition(s) and 15 deletion(s). Raw diff Collapse all Expand all
2424 etaAlpha = 0.25
2525 )
2626
27 type fmtRunes [formatLen]rune
27 type barRunes [formatLen]rune
2828
2929 // Bar represents a progress Bar
3030 type Bar struct {
4949 bState struct {
5050 id int
5151 width int
52 format fmtRunes
52 runes barRunes
5353 etaAlpha float64
5454 total int64
5555 current int64
357357
358358 func (s *bState) fillBar(width int) {
359359 s.bufB.Reset()
360 s.bufB.WriteRune(s.format[rLeft])
360 s.bufB.WriteRune(s.runes[rLeft])
361361 if width <= 2 {
362 s.bufB.WriteRune(s.format[rRight])
362 s.bufB.WriteRune(s.runes[rRight])
363363 return
364364 }
365365
376376 s.bufB.WriteRune(s.refill.char)
377377 }
378378 for i = till; i < completedWidth; i++ {
379 s.bufB.WriteRune(s.format[rFill])
379 s.bufB.WriteRune(s.runes[rFill])
380380 }
381381 } else {
382382 var i int64
383383 for i = 0; i < completedWidth; i++ {
384 s.bufB.WriteRune(s.format[rFill])
384 s.bufB.WriteRune(s.runes[rFill])
385385 }
386386 }
387387
388388 if completedWidth < int64(barWidth) && completedWidth > 0 {
389389 _, size := utf8.DecodeLastRune(s.bufB.Bytes())
390390 s.bufB.Truncate(s.bufB.Len() - size)
391 s.bufB.WriteRune(s.format[rTip])
391 s.bufB.WriteRune(s.runes[rTip])
392392 }
393393
394394 for i := completedWidth; i < int64(barWidth); i++ {
395 s.bufB.WriteRune(s.format[rEmpty])
396 }
397
398 s.bufB.WriteRune(s.format[rRight])
395 s.bufB.WriteRune(s.runes[rEmpty])
396 }
397
398 s.bufB.WriteRune(s.runes[rRight])
399399 }
400400
401401 func (s *bState) updateTimePerItemEstimate(amount int, now, next time.Time) {
417417 }
418418 }
419419
420 func (s *bState) updateFormat(format string) {
420 func strToBarRunes(format string) (array barRunes) {
421421 for i, n := 0, 0; len(format) > 0; i++ {
422 s.format[i], n = utf8.DecodeRuneInString(format)
422 array[i], n = utf8.DecodeRuneInString(format)
423423 format = format[n:]
424424 }
425 }
425 return
426 }
8989
9090 func barFormat(format string) BarOption {
9191 return func(s *bState) {
92 s.updateFormat(format)
92 s.runes = strToBarRunes(format)
9393 }
9494 }