From 23ab1f8be6a1f4b5ce01e05f8ed3f6b5dae30d0b Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 24 May 2022 21:53:28 -0600 Subject: stuff --- pkg/btrfs/types_bitfields.go | 68 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pkg/btrfs/types_bitfields.go (limited to 'pkg/btrfs/types_bitfields.go') diff --git a/pkg/btrfs/types_bitfields.go b/pkg/btrfs/types_bitfields.go new file mode 100644 index 0000000..ead4b0f --- /dev/null +++ b/pkg/btrfs/types_bitfields.go @@ -0,0 +1,68 @@ +package btrfs + +import ( + "fmt" + "strings" +) + +func bitfieldString[T ~uint8 | ~uint16 | ~uint32 | ~uint64](bitfield T, bitnames []string) string { + if bitfield == 0 { + return "0" + } + var out strings.Builder + fmt.Fprintf(&out, "(0x%0X)", uint64(bitfield)) + rest := bitfield + sep := ' ' + for i := 0; rest != 0; i++ { + if rest&(1<