# oids

Dark Mode

- Manual
- Standard library
- Index
- Compiler docs
- Fusion docs

Search:

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 was extracted from the Mongodb interface and it thus binary compatible with a Mongo OID.

This implementation calls `math.randomize()` for the first call of `genOid`.

# Imports

hashes, times, endians

# Types

    Oid = object
      time: int32
      fuzz: int32
      count: int32

  an OID Source Edit

# Procs

    proc `==`(oid1: Oid; oid2: Oid): bool {...}{.raises: [], tags: [].}

  Compare two Mongo Object IDs for equality Source Edit

    proc hash(oid: Oid): Hash {...}{.raises: [], tags: [].}

  Generate hash of Oid for use in hashtables Source Edit

    proc hexbyte(hex: char): int {...}{.raises: [], tags: [].}

  Source Edit

    proc parseOid(str: cstring): Oid {...}{.raises: [], tags: [].}

  parses an OID. Source Edit

    proc oidToString(oid: Oid; str: cstring) {...}{.raises: [], tags: [].}

  Source Edit

    proc `$`(oid: Oid): string {...}{.raises: [], tags: [].}

  Source Edit

    proc genOid(): Oid {...}{.raises: [], tags: [TimeEffect].}

  generates a new OID. Source Edit

    proc generatedTime(oid: Oid): Time {...}{.raises: [], tags: [].}

  returns the generated timestamp of the OID. Source Edit