diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2018-02-11 19:25:33 +0100 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2018-02-11 19:25:33 +0100 |
commit | 1cf23c000540bac53324cffd864506c92077bf94 (patch) | |
tree | 94c07d42e22f6da692a7df3a0fab90105b012ba6 /internal | |
parent | 743364f647e8486d81a96ce8749d818b05668951 (diff) |
Moved tai64n into sub-package
Diffstat (limited to 'internal')
-rw-r--r-- | internal/tai64n/tai64.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/tai64n/tai64.go b/internal/tai64n/tai64.go new file mode 100644 index 0000000..da5257c --- /dev/null +++ b/internal/tai64n/tai64.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 +} |