From ff8f3a412ebf3b83b2d67fdafcc3311800fd39ee Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 12 Feb 2018 23:48:09 +0100 Subject: Use relative imports --- tai64n/tai64n.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tai64n/tai64n.go (limited to 'tai64n/tai64n.go') diff --git a/tai64n/tai64n.go b/tai64n/tai64n.go new file mode 100644 index 0000000..da5257c --- /dev/null +++ b/tai64n/tai64n.go @@ -0,0 +1,26 @@ +package tai64n + +import ( + "bytes" + "encoding/binary" + "time" +) + +const TimestampSize = 12 +const base = uint64(4611686018427387914) + +type Timestamp [TimestampSize]byte + +func Now() Timestamp { + var tai64n Timestamp + now := time.Now() + secs := base + uint64(now.Unix()) + nano := uint32(now.UnixNano()) + binary.BigEndian.PutUint64(tai64n[:], secs) + binary.BigEndian.PutUint32(tai64n[8:], nano) + return tai64n +} + +func (t1 Timestamp) After(t2 Timestamp) bool { + return bytes.Compare(t1[:], t2[:]) > 0 +} -- cgit v1.2.3-59-g8ed1b