make sure BarClearOnComplete doesn't depend on order
Vladimir Bauer
6 years ago
| 57 | 57 |
type extFunc func(in io.Reader, tw int, st *decor.Statistics) (out io.Reader, lines int)
|
| 58 | 58 |
|
| 59 | 59 |
type bState struct {
|
|
60 |
baseF Filler
|
| 60 | 61 |
filler Filler
|
| 61 | 62 |
id int
|
| 62 | 63 |
width int
|
|
| 164 | 165 |
SetRefill(int64)
|
| 165 | 166 |
}
|
| 166 | 167 |
b.operateState <- func(s *bState) {
|
| 167 | |
if f, ok := s.filler.(refiller); ok {
|
|
168 |
if f, ok := s.baseF.(refiller); ok {
|
| 168 | 169 |
f.SetRefill(amount)
|
| 169 | 170 |
}
|
| 170 | 171 |
}
|
| 79 | 79 |
// BarClearOnComplete clears bar filler only, on complete event.
|
| 80 | 80 |
func BarClearOnComplete() BarOption {
|
| 81 | 81 |
return func(s *bState) {
|
| 82 | |
s.filler = makeClearOnCompleteFiller(s.filler)
|
|
82 |
s.filler = makeClearOnCompleteFiller(s.baseF)
|
| 83 | 83 |
}
|
| 84 | 84 |
}
|
| 85 | 85 |
|
|
| 140 | 140 |
SetStyle(string)
|
| 141 | 141 |
}
|
| 142 | 142 |
return func(s *bState) {
|
| 143 | |
if t, ok := s.filler.(styleSetter); ok {
|
|
143 |
if t, ok := s.baseF.(styleSetter); ok {
|
| 144 | 144 |
t.SetStyle(style)
|
| 145 | 145 |
}
|
| 146 | 146 |
}
|
|
| 160 | 160 |
SetReverse(bool)
|
| 161 | 161 |
}
|
| 162 | 162 |
return func(s *bState) {
|
| 163 | |
if t, ok := s.filler.(revSetter); ok {
|
|
163 |
if t, ok := s.baseF.(revSetter); ok {
|
| 164 | 164 |
t.SetReverse(true)
|
| 165 | 165 |
}
|
| 166 | 166 |
}
|
|
| 190 | 190 |
cb func(interface{}),
|
| 191 | 191 |
) BarOption {
|
| 192 | 192 |
return func(s *bState) {
|
| 193 | |
if t, ok := typeChecker(s.filler); ok {
|
|
193 |
if t, ok := typeChecker(s.baseF); ok {
|
| 194 | 194 |
cb(t)
|
| 195 | 195 |
}
|
| 196 | 196 |
}
|
| 331 | 331 |
func (s *pState) makeBarState(total int64, filler Filler, options ...BarOption) *bState {
|
| 332 | 332 |
bs := &bState{
|
| 333 | 333 |
total: total,
|
|
334 |
baseF: filler,
|
| 334 | 335 |
filler: filler,
|
| 335 | 336 |
priority: s.idCount,
|
| 336 | 337 |
id: s.idCount,
|