decor: check for WriteString error
Vladimir Bauer
4 years ago
|
0 |
package decor
|
|
1 |
|
|
2 |
import "io"
|
|
3 |
|
|
4 |
func optimisticStringWriter(w io.Writer) func(string) {
|
|
5 |
return func(s string) {
|
|
6 |
_, err := io.WriteString(w, s)
|
|
7 |
if err != nil {
|
|
8 |
panic(err)
|
|
9 |
}
|
|
10 |
}
|
|
11 |
}
|
| 1 | 1 |
|
| 2 | 2 |
import (
|
| 3 | 3 |
"fmt"
|
| 4 | |
"io"
|
| 5 | 4 |
"strconv"
|
| 6 | 5 |
|
| 7 | 6 |
"github.com/vbauerster/mpb/v7/internal"
|
|
| 23 | 22 |
}
|
| 24 | 23 |
}
|
| 25 | 24 |
|
| 26 | |
io.WriteString(st, strconv.FormatFloat(float64(s), 'f', prec, 64))
|
| 27 | |
|
|
25 |
osw := optimisticStringWriter(st)
|
|
26 |
osw(strconv.FormatFloat(float64(s), 'f', prec, 64))
|
| 28 | 27 |
if st.Flag(' ') {
|
| 29 | |
io.WriteString(st, " ")
|
|
28 |
osw(" ")
|
| 30 | 29 |
}
|
| 31 | |
io.WriteString(st, "%")
|
|
30 |
osw("%")
|
| 32 | 31 |
}
|
| 33 | 32 |
|
| 34 | 33 |
// Percentage returns percentage decorator. It's a wrapper of NewPercentage.
|
| 1 | 1 |
|
| 2 | 2 |
import (
|
| 3 | 3 |
"fmt"
|
| 4 | |
"io"
|
| 5 | 4 |
"strconv"
|
| 6 | 5 |
)
|
| 7 | 6 |
|
|
| 49 | 48 |
unit = _iTiB
|
| 50 | 49 |
}
|
| 51 | 50 |
|
| 52 | |
io.WriteString(st, strconv.FormatFloat(float64(self)/float64(unit), 'f', prec, 64))
|
| 53 | |
|
|
51 |
osw := optimisticStringWriter(st)
|
|
52 |
osw(strconv.FormatFloat(float64(self)/float64(unit), 'f', prec, 64))
|
| 54 | 53 |
if st.Flag(' ') {
|
| 55 | |
io.WriteString(st, " ")
|
|
54 |
osw(" ")
|
| 56 | 55 |
}
|
| 57 | |
io.WriteString(st, unit.String())
|
|
56 |
osw(unit.String())
|
| 58 | 57 |
}
|
| 59 | 58 |
|
| 60 | 59 |
const (
|
|
| 98 | 97 |
unit = _TB
|
| 99 | 98 |
}
|
| 100 | 99 |
|
| 101 | |
io.WriteString(st, strconv.FormatFloat(float64(self)/float64(unit), 'f', prec, 64))
|
| 102 | |
|
|
100 |
osw := optimisticStringWriter(st)
|
|
101 |
osw(strconv.FormatFloat(float64(self)/float64(unit), 'f', prec, 64))
|
| 103 | 102 |
if st.Flag(' ') {
|
| 104 | |
io.WriteString(st, " ")
|
|
103 |
osw(" ")
|
| 105 | 104 |
}
|
| 106 | |
io.WriteString(st, unit.String())
|
|
105 |
osw(unit.String())
|
| 107 | 106 |
}
|
| 1 | 1 |
|
| 2 | 2 |
import (
|
| 3 | 3 |
"fmt"
|
| 4 | |
"io"
|
| 5 | 4 |
"math"
|
| 6 | 5 |
"time"
|
| 7 | 6 |
|
|
| 23 | 22 |
|
| 24 | 23 |
func (self *speedFormatter) Format(st fmt.State, verb rune) {
|
| 25 | 24 |
self.Formatter.Format(st, verb)
|
| 26 | |
io.WriteString(st, "/s")
|
|
25 |
optimisticStringWriter(st)("/s")
|
| 27 | 26 |
}
|
| 28 | 27 |
|
| 29 | 28 |
// EwmaSpeed exponential-weighted-moving-average based speed decorator.
|