summaryrefslogtreecommitdiff
path: root/pkg/btrfs/internal/addr.go
blob: 7067982c86e50a5c8d592e609b164ed72bac9d93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package internal

import (
	"fmt"

	"lukeshu.com/btrfs-tools/pkg/util"
)

type (
	PhysicalAddr int64
	LogicalAddr  int64
)

func formatAddr(addr int64, f fmt.State, verb rune) {
	switch verb {
	case 'v', 's', 'q':
		str := fmt.Sprintf("%#016x", addr)
		fmt.Fprintf(f, util.FmtStateString(f, verb), str)
	default:
		fmt.Fprintf(f, util.FmtStateString(f, verb), addr)
	}
}

func (a PhysicalAddr) Format(f fmt.State, verb rune) { formatAddr(int64(a), f, verb) }
func (a LogicalAddr) Format(f fmt.State, verb rune)  { formatAddr(int64(a), f, verb) }