logtail: add a few new methods to PublicID

These are for use in our internal systems.

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
Josh Bleecher Snyder 2022-01-31 13:11:14 -08:00 committed by Josh Bleecher Snyder
parent 730aa1c89c
commit e45d51b060

View File

@ -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])
}