diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-10 13:18:30 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-10 13:35:20 -0600 |
commit | 27401b6ea459921a6152ab1744da1618358465f4 (patch) | |
tree | 2c4f9c096f1a593e65d7f824901e815ca48bfaf0 /pkg/util/fmt.go | |
parent | 42f6f78e0a32ba0eda707154f8e1ffb4579604ee (diff) |
Rename the module, mv pkg lib
Diffstat (limited to 'pkg/util/fmt.go')
-rw-r--r-- | pkg/util/fmt.go | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/pkg/util/fmt.go b/pkg/util/fmt.go deleted file mode 100644 index af7404c..0000000 --- a/pkg/util/fmt.go +++ /dev/null @@ -1,67 +0,0 @@ -package util - -import ( - "fmt" - "strings" -) - -// FmtStateString returns the fmt.Printf string that produced a given -// fmt.State and verb. -func FmtStateString(st fmt.State, verb rune) string { - var ret strings.Builder - ret.WriteByte('%') - for _, flag := range []int{'-', '+', '#', ' ', '0'} { - if st.Flag(flag) { - ret.WriteByte(byte(flag)) - } - } - if width, ok := st.Width(); ok { - fmt.Fprintf(&ret, "%v", width) - } - if prec, ok := st.Precision(); ok { - if prec == 0 { - ret.WriteByte('.') - } else { - fmt.Fprintf(&ret, ".%v", prec) - } - } - ret.WriteRune(verb) - return ret.String() -} - -// FormatByteArrayStringer is function for helping to implement -// fmt.Formatter for []byte or [n]byte types that have a custom string -// representation. Use it like: -// -// type MyType [16]byte -// -// func (val MyType) String() string { -// … -// } -// -// func (val MyType) Format(f fmt.State, verb rune) { -// util.FormatByteArrayStringer(val, val[:], f, verb) -// } -func FormatByteArrayStringer( - obj interface { - fmt.Stringer - fmt.Formatter - }, - objBytes []byte, - f fmt.State, verb rune) { - switch verb { - case 'v': - if !f.Flag('#') { - FormatByteArrayStringer(obj, objBytes, f, 's') // as a string - } else { - byteStr := fmt.Sprintf("%#v", objBytes) - objType := fmt.Sprintf("%T", obj) - objStr := objType + strings.TrimPrefix(byteStr, "[]byte") - fmt.Fprintf(f, FmtStateString(f, 's'), objStr) - } - case 's', 'q': // string - fmt.Fprintf(f, FmtStateString(f, verb), obj.String()) - default: - fmt.Fprintf(f, FmtStateString(f, verb), objBytes) - } -} |