refactoring Size types
accept any verb which is supported by AppendFloat
Vladimir Bauer
3 years ago
| 28 | 28 | type SizeB1024 int64 |
| 29 | 29 | |
| 30 | 30 | func (self SizeB1024) Format(st fmt.State, verb rune) { |
| 31 | var prec int | |
| 31 | prec := -1 | |
| 32 | 32 | switch verb { |
| 33 | case 'd': | |
| 34 | case 's': | |
| 35 | prec = -1 | |
| 36 | default: | |
| 33 | case 'f', 'e', 'E': | |
| 34 | prec = 6 // default prec of fmt.Printf("%f|%e|%E") | |
| 35 | fallthrough | |
| 36 | case 'b', 'g', 'G', 'x', 'X': | |
| 37 | 37 | if p, ok := st.Precision(); ok { |
| 38 | 38 | prec = p |
| 39 | } else { | |
| 40 | prec = 6 | |
| 41 | 39 | } |
| 40 | default: | |
| 41 | verb, prec = 'f', 0 | |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | var unit SizeB1024 |
| 55 | 55 | unit = _iTiB |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | b := strconv.AppendFloat(make([]byte, 0, 32), float64(self)/float64(unit), 'f', prec, 64) | |
| 58 | b := strconv.AppendFloat(make([]byte, 0, 24), float64(self)/float64(unit), byte(verb), prec, 64) | |
| 59 | 59 | if st.Flag(' ') { |
| 60 | 60 | b = append(b, ' ') |
| 61 | 61 | } |
| 80 | 80 | type SizeB1000 int64 |
| 81 | 81 | |
| 82 | 82 | func (self SizeB1000) Format(st fmt.State, verb rune) { |
| 83 | var prec int | |
| 83 | prec := -1 | |
| 84 | 84 | switch verb { |
| 85 | case 'd': | |
| 86 | case 's': | |
| 87 | prec = -1 | |
| 88 | default: | |
| 85 | case 'f', 'e', 'E': | |
| 86 | prec = 6 // default prec of fmt.Printf("%f|%e|%E") | |
| 87 | fallthrough | |
| 88 | case 'b', 'g', 'G', 'x', 'X': | |
| 89 | 89 | if p, ok := st.Precision(); ok { |
| 90 | 90 | prec = p |
| 91 | } else { | |
| 92 | prec = 6 | |
| 93 | 91 | } |
| 92 | default: | |
| 93 | verb, prec = 'f', 0 | |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | var unit SizeB1000 |
| 107 | 107 | unit = _TB |
| 108 | 108 | } |
| 109 | 109 | |
| 110 | b := strconv.AppendFloat(make([]byte, 0, 32), float64(self)/float64(unit), 'f', prec, 64) | |
| 110 | b := strconv.AppendFloat(make([]byte, 0, 24), float64(self)/float64(unit), byte(verb), prec, 64) | |
| 111 | 111 | if st.Flag(' ') { |
| 112 | 112 | b = append(b, ' ') |
| 113 | 113 | } |