summaryrefslogtreecommitdiff
path: root/pkg/btrfs/internal/misc.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/btrfs/internal/misc.go')
-rw-r--r--pkg/btrfs/internal/misc.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/pkg/btrfs/internal/misc.go b/pkg/btrfs/internal/misc.go
index 2a98464..3dc77d6 100644
--- a/pkg/btrfs/internal/misc.go
+++ b/pkg/btrfs/internal/misc.go
@@ -4,6 +4,7 @@ import (
"time"
"lukeshu.com/btrfs-tools/pkg/binstruct"
+ "lukeshu.com/btrfs-tools/pkg/util"
)
type Generation uint64
@@ -15,6 +16,16 @@ type Key struct {
binstruct.End `bin:"off=0x11"`
}
+func (a Key) Cmp(b Key) int {
+ if d := util.CmpUint(a.ObjectID, b.ObjectID); d != 0 {
+ return d
+ }
+ if d := util.CmpUint(a.ItemType, b.ItemType); d != 0 {
+ return d
+ }
+ return util.CmpUint(a.Offset, b.Offset)
+}
+
type Time struct {
Sec int64 `bin:"off=0x0, siz=0x8"` // Number of seconds since 1970-01-01T00:00:00Z.
NSec uint32 `bin:"off=0x8, siz=0x4"` // Number of nanoseconds since the beginning of the second.