Expand description

Generating UUIDs from timestamps.

Timestamps are used in a few UUID versions as a source of decentralized uniqueness (as in versions 1 and 6), and as a way to enable sorting (as in versions 6 and 7). Timestamps aren’t encoded the same way by all UUID versions so this module provides a single Timestamp type that can convert between them.

Timestamp representations in UUIDs

Versions 1 and 6 UUIDs use a bespoke timestamp that consists of the number of 100ns ticks since 1582-10-15 00:00:00, along with a counter value to avoid duplicates.

Version 7 UUIDs use a more standard timestamp that consists of the number of millisecond ticks since the Unix epoch (1970-01-01 00:00:00).

References

Modules

Default implementations for the ClockSequence trait.

Structs

A timestamp that can be encoded into a UUID.

Constants

The number of 100 nanosecond ticks between the RFC4122 epoch (1582-10-15 00:00:00) and the Unix epoch (1970-01-01 00:00:00).

Traits

A counter that can be used by version 1 and version 6 UUIDs to support the uniqueness of timestamps.