BarOnComplete
Vladimir Bauer
6 years ago
| 52 | 52 | } |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | // BarRemoveOnComplete removes bar filler and decorators if any, on | |
| 56 | // complete event. | |
| 57 | func BarRemoveOnComplete() BarOption { | |
| 58 | return func(s *bState) { | |
| 59 | s.dropOnComplete = true | |
| 60 | } | |
| 61 | } | |
| 62 | ||
| 63 | 55 | // BarReplaceOnComplete is deprecated. Use BarParkTo instead. |
| 64 | 56 | func BarReplaceOnComplete(runningBar *Bar) BarOption { |
| 65 | 57 | return BarParkTo(runningBar) |
| 76 | 68 | } |
| 77 | 69 | } |
| 78 | 70 | |
| 71 | // BarRemoveOnComplete removes bar filler and decorators if any, on | |
| 72 | // complete event. | |
| 73 | func BarRemoveOnComplete() BarOption { | |
| 74 | return func(s *bState) { | |
| 75 | s.dropOnComplete = true | |
| 76 | } | |
| 77 | } | |
| 78 | ||
| 79 | 79 | // BarClearOnComplete clears bar filler only, on complete event. |
| 80 | 80 | func BarClearOnComplete() BarOption { |
| 81 | return func(s *bState) { | |
| 82 | s.filler = makeClearOnCompleteFiller(s.baseF) | |
| 83 | } | |
| 84 | } | |
| 85 | ||
| 86 | func makeClearOnCompleteFiller(filler Filler) Filler { | |
| 81 | return BarOnComplete("") | |
| 82 | } | |
| 83 | ||
| 84 | // BarOnComplete replaces bar filler with message, on complete event. | |
| 85 | func BarOnComplete(message string) BarOption { | |
| 86 | return func(s *bState) { | |
| 87 | s.filler = makeClearOnCompleteFiller(s.baseF, message) | |
| 88 | } | |
| 89 | } | |
| 90 | ||
| 91 | func makeClearOnCompleteFiller(filler Filler, message string) Filler { | |
| 87 | 92 | return FillerFunc(func(w io.Writer, width int, st *decor.Statistics) { |
| 88 | 93 | if st.Completed { |
| 89 | w.Write([]byte{}) | |
| 94 | io.WriteString(w, message) | |
| 90 | 95 | } else { |
| 91 | 96 | filler.Fill(w, width, st) |
| 92 | 97 | } |