nim / latest / oids.html

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

Oid = object
An OID. Source Edit

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

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/oids.html