Refactoring: fmtRunes to barRunes
Vladimir Bauer
8 years ago
| 24 | 24 | etaAlpha = 0.25 |
| 25 | 25 | ) |
| 26 | 26 | |
| 27 | type fmtRunes [formatLen]rune | |
| 27 | type barRunes [formatLen]rune | |
| 28 | 28 | |
| 29 | 29 | // Bar represents a progress Bar |
| 30 | 30 | type Bar struct { |
| 49 | 49 | bState struct { |
| 50 | 50 | id int |
| 51 | 51 | width int |
| 52 | format fmtRunes | |
| 52 | runes barRunes | |
| 53 | 53 | etaAlpha float64 |
| 54 | 54 | total int64 |
| 55 | 55 | current int64 |
| 357 | 357 | |
| 358 | 358 | func (s *bState) fillBar(width int) { |
| 359 | 359 | s.bufB.Reset() |
| 360 | s.bufB.WriteRune(s.format[rLeft]) | |
| 360 | s.bufB.WriteRune(s.runes[rLeft]) | |
| 361 | 361 | if width <= 2 { |
| 362 | s.bufB.WriteRune(s.format[rRight]) | |
| 362 | s.bufB.WriteRune(s.runes[rRight]) | |
| 363 | 363 | return |
| 364 | 364 | } |
| 365 | 365 | |
| 376 | 376 | s.bufB.WriteRune(s.refill.char) |
| 377 | 377 | } |
| 378 | 378 | for i = till; i < completedWidth; i++ { |
| 379 | s.bufB.WriteRune(s.format[rFill]) | |
| 379 | s.bufB.WriteRune(s.runes[rFill]) | |
| 380 | 380 | } |
| 381 | 381 | } else { |
| 382 | 382 | var i int64 |
| 383 | 383 | for i = 0; i < completedWidth; i++ { |
| 384 | s.bufB.WriteRune(s.format[rFill]) | |
| 384 | s.bufB.WriteRune(s.runes[rFill]) | |
| 385 | 385 | } |
| 386 | 386 | } |
| 387 | 387 | |
| 388 | 388 | if completedWidth < int64(barWidth) && completedWidth > 0 { |
| 389 | 389 | _, size := utf8.DecodeLastRune(s.bufB.Bytes()) |
| 390 | 390 | s.bufB.Truncate(s.bufB.Len() - size) |
| 391 | s.bufB.WriteRune(s.format[rTip]) | |
| 391 | s.bufB.WriteRune(s.runes[rTip]) | |
| 392 | 392 | } |
| 393 | 393 | |
| 394 | 394 | 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]) | |
| 399 | 399 | } |
| 400 | 400 | |
| 401 | 401 | func (s *bState) updateTimePerItemEstimate(amount int, now, next time.Time) { |
| 417 | 417 | } |
| 418 | 418 | } |
| 419 | 419 | |
| 420 | func (s *bState) updateFormat(format string) { | |
| 420 | func strToBarRunes(format string) (array barRunes) { | |
| 421 | 421 | for i, n := 0, 0; len(format) > 0; i++ { |
| 422 | s.format[i], n = utf8.DecodeRuneInString(format) | |
| 422 | array[i], n = utf8.DecodeRuneInString(format) | |
| 423 | 423 | format = format[n:] |
| 424 | 424 | } |
| 425 | } | |
| 425 | return | |
| 426 | } | |