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: