lib: add byte slice output for HexEncode
This commit is contained in:
19
lib/lib.go
19
lib/lib.go
@@ -125,6 +125,8 @@ const (
|
|||||||
// HexEncodeUpperColon prints the bytes as uppercase hexadecimal
|
// HexEncodeUpperColon prints the bytes as uppercase hexadecimal
|
||||||
// with colons between each pair of bytes.
|
// with colons between each pair of bytes.
|
||||||
HexEncodeUpperColon
|
HexEncodeUpperColon
|
||||||
|
// HexEncodeBytes prints the string as a sequence of []byte.
|
||||||
|
HexEncodeBytes
|
||||||
)
|
)
|
||||||
|
|
||||||
func (m HexEncodeMode) String() string {
|
func (m HexEncodeMode) String() string {
|
||||||
@@ -137,6 +139,8 @@ func (m HexEncodeMode) String() string {
|
|||||||
return "lcolon"
|
return "lcolon"
|
||||||
case HexEncodeUpperColon:
|
case HexEncodeUpperColon:
|
||||||
return "ucolon"
|
return "ucolon"
|
||||||
|
case HexEncodeBytes:
|
||||||
|
return "bytes"
|
||||||
default:
|
default:
|
||||||
panic("invalid hex encode mode")
|
panic("invalid hex encode mode")
|
||||||
}
|
}
|
||||||
@@ -152,6 +156,8 @@ func ParseHexEncodeMode(s string) HexEncodeMode {
|
|||||||
return HexEncodeLowerColon
|
return HexEncodeLowerColon
|
||||||
case "ucolon":
|
case "ucolon":
|
||||||
return HexEncodeUpperColon
|
return HexEncodeUpperColon
|
||||||
|
case "bytes":
|
||||||
|
return HexEncodeBytes
|
||||||
}
|
}
|
||||||
|
|
||||||
panic("invalid hex encode mode")
|
panic("invalid hex encode mode")
|
||||||
@@ -202,6 +208,17 @@ func hexEncode(b []byte) string {
|
|||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func bytesAsByteSliceString(buf []byte) string {
|
||||||
|
sb := &strings.Builder{}
|
||||||
|
sb.WriteString("[]byte{")
|
||||||
|
for i := range buf {
|
||||||
|
fmt.Fprintf(sb, "0x%02x, ", buf[i])
|
||||||
|
}
|
||||||
|
sb.WriteString("}")
|
||||||
|
|
||||||
|
return sb.String()
|
||||||
|
}
|
||||||
|
|
||||||
// HexEncode encodes the given bytes as a hexadecimal string.
|
// HexEncode encodes the given bytes as a hexadecimal string.
|
||||||
func HexEncode(b []byte, mode HexEncodeMode) string {
|
func HexEncode(b []byte, mode HexEncodeMode) string {
|
||||||
str := hexEncode(b)
|
str := hexEncode(b)
|
||||||
@@ -215,6 +232,8 @@ func HexEncode(b []byte, mode HexEncodeMode) string {
|
|||||||
return hexColons(str)
|
return hexColons(str)
|
||||||
case HexEncodeUpperColon:
|
case HexEncodeUpperColon:
|
||||||
return strings.ToUpper(hexColons(str))
|
return strings.ToUpper(hexColons(str))
|
||||||
|
case HexEncodeBytes:
|
||||||
|
return bytesAsByteSliceString(b)
|
||||||
default:
|
default:
|
||||||
panic("invalid hex encode mode")
|
panic("invalid hex encode mode")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user