# std/oids

Theme:

- Manual
- Standard library
- Index
- Compiler docs
- Fusion docs
- devel, stable

Search:
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, sysatomics

# 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