summaryrefslogtreecommitdiff
path: root/pkg/util/bitfield.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-10 13:18:30 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-10 13:35:20 -0600
commit27401b6ea459921a6152ab1744da1618358465f4 (patch)
tree2c4f9c096f1a593e65d7f824901e815ca48bfaf0 /pkg/util/bitfield.go
parent42f6f78e0a32ba0eda707154f8e1ffb4579604ee (diff)
Rename the module, mv pkg lib
Diffstat (limited to 'pkg/util/bitfield.go')
-rw-r--r--pkg/util/bitfield.go50
1 files changed, 0 insertions, 50 deletions
diff --git a/pkg/util/bitfield.go b/pkg/util/bitfield.go
deleted file mode 100644
index 23da17a..0000000
--- a/pkg/util/bitfield.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package util
-
-import (
- "fmt"
- "strings"
-)
-
-type BitfieldFormat uint8
-
-const (
- HexNone = BitfieldFormat(iota)
- HexLower
- HexUpper
-)
-
-func BitfieldString[T ~uint8 | ~uint16 | ~uint32 | ~uint64](bitfield T, bitnames []string, cfg BitfieldFormat) string {
- var out strings.Builder
- switch cfg {
- case HexNone:
- // do nothing
- case HexLower:
- fmt.Fprintf(&out, "0x%0x(", uint64(bitfield))
- case HexUpper:
- fmt.Fprintf(&out, "0x%0X(", uint64(bitfield))
- }
- if bitfield == 0 {
- out.WriteString("none")
- } else {
- rest := bitfield
- first := true
- for i := 0; rest != 0; i++ {
- if rest&(1<<i) != 0 {
- if !first {
- out.WriteRune('|')
- }
- if i < len(bitnames) {
- out.WriteString(bitnames[i])
- } else {
- fmt.Fprintf(&out, "(1<<%v)", i)
- }
- first = false
- }
- rest &^= 1 << i
- }
- }
- if cfg != HexNone {
- out.WriteRune(')')
- }
- return out.String()
-}