diff --git a/logtail/id.go b/logtail/id.go index 5460ce024..119b698f7 100644 --- a/logtail/id.go +++ b/logtail/id.go @@ -7,6 +7,7 @@ import ( "crypto/rand" "crypto/sha256" + "encoding/binary" "encoding/hex" "errors" "fmt" @@ -156,3 +157,21 @@ func fromHexChar(c byte) (byte, bool) { return 0, false } + +func (id1 PublicID) Less(id2 PublicID) bool { + for i, c1 := range id1[:] { + c2 := id2[i] + if c1 != c2 { + return c1 < c2 + } + } + return false // equal +} + +func (id PublicID) IsZero() bool { + return id == PublicID{} +} + +func (id PublicID) Prefix64() uint64 { + return binary.BigEndian.Uint64(id[:8]) +}