From 8d6bd1339383adb5812e3a7e029de86b347ef6ed Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Mon, 8 Nov 2021 12:31:08 -0800 Subject: [PATCH] initial commits --- generate.go | 9 +++++++-- id.go | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/generate.go b/generate.go index 1a8b94c..19a7c71 100644 --- a/generate.go +++ b/generate.go @@ -11,10 +11,15 @@ var ( func generate() uint64 { - var now int64 = time.Now().Unix() + var now int64 = time.Now().Unix() + return generateformoment(now) +} + +func generateformoment(unixtimestamp int64) uint64 { var chaos uint64 = randomness.Uint64() - var value uint64 = compile(uint64(now), chaos) + var value uint64 = compile(uint64(unixtimestamp), chaos) return value + } diff --git a/id.go b/id.go index 24354be..919bbef 100644 --- a/id.go +++ b/id.go @@ -49,6 +49,26 @@ func Generate() ID { return something(value) } +// GenerateForMoment returns a new xim-id that has embedded in it the time given by the unix-timestamp in the variable ‘unixtimestamp’. +// +// Example usage: +// +// var unixTimeStamp int32 = 1636403305 // I.e., Monday, November 8, 2021 12:28:25 PM GMT-08:00 +// +// var id xim.ID = xim.GenerateForMoment(unixTimeStamp) +// +// fmt.Println("xim-id =", id) +// +// The chaos part of this xim-id will be chosen randomly (just like with xim.Generate()). +func GenerateForMoment(unixtimestamp int32) ID { + + var when int64 = int64(unixtimestamp) + + var value uint64 = generateformoment(when) + + return something(value) +} + // Chaos returns the randomness that is embeddd in the xim-id. // // Example usage: