From e45d51b060dbe523fb8b579533000987727f3a6f Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 31 Jan 2022 13:11:14 -0800 Subject: [PATCH] logtail: add a few new methods to PublicID These are for use in our internal systems. Signed-off-by: Josh Bleecher Snyder --- logtail/id.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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 @@ package logtail 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]) +}