std/oids
Source Edit
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
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"
Source Edit
-
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: [].}
- Source Edit
-
proc parseOid(str: cstring): Oid {....raises: [], tags: [], forbids: [].}
-
Parses an OID. Source Edit