Spec-Zone.ru › Nim
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