From 490cffb1f4ee99b013302cfed9ef849c0676735c Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 11 May 2022 22:40:03 -0600 Subject: scan for nodes --- pkg/btrfs/bitfields.go | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pkg/btrfs/bitfields.go (limited to 'pkg/btrfs/bitfields.go') diff --git a/pkg/btrfs/bitfields.go b/pkg/btrfs/bitfields.go new file mode 100644 index 0000000..ead4b0f --- /dev/null +++ b/pkg/btrfs/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<