Nim OID support. An OID is a global ID that consists of a timestamp, a unique counter and a random value. This combination should suffice to produce a globally distributed unique ID.
This implementation calls initRand() for the first call of genOid.
Imports
hashes, times, endians, random, decode_helpers
Types
Oid = object
Procs
proc `$`(oid: Oid): string {....raises: [], tags: [], forbids: [].}
Converts an OID to a string. Source Edit
proc `==`(oid1: Oid; oid2: Oid): bool {.inline, ...raises: [], tags: [],
forbids: [].}
Compares two OIDs for equality. Source Edit
proc generatedTime(oid: Oid): Time {....raises: [], tags: [], forbids: [].}
Returns the generated timestamp of the OID. Source Edit
proc genOid(): Oid {....raises: [], tags: [TimeEffect], forbids: [].}
Generates a new OID.
Example:
doAssert ($genOid()).len == 24
Example: cmd: -r:off
echo $genOid() # for example, "5fc7f546ddbbc84800006aaf"
proc hash(oid: Oid): Hash {....raises: [], tags: [], forbids: [].}
Generates the hash of an OID for use in hashtables. Source Edit
proc hexbyte(hex: char): int {.inline, ...raises: [], tags: [], forbids: [].}
proc parseOid(str: cstring): Oid {....raises: [], tags: [], forbids: [].}