Trait UlidGenerator

Source
pub trait UlidGenerator<ID, T, R>
where ID: UlidId, T: TimeSource<ID::Ty>, R: RandSource<ID::Ty>,
{ type Err: Debug; // Required methods fn new(clock: T, rng: R) -> Self; fn next_id(&self) -> IdGenStatus<ID>; fn try_next_id(&self) -> Result<IdGenStatus<ID>, Self::Err>; }
Expand description

A minimal interface for generating Ulid IDs

Required Associated Types§

Required Methods§

Source

fn new(clock: T, rng: R) -> Self

Source

fn next_id(&self) -> IdGenStatus<ID>

Returns the next available ID

Source

fn try_next_id(&self) -> Result<IdGenStatus<ID>, Self::Err>

A fallible version of Self::next_id that returns a Result.

§Errors
  • May return an error if the underlying generator uses a lock and it is poisoned.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<ID, T, R> UlidGenerator<ID, T, R> for BasicMonoUlidGenerator<ID, T, R>
where ID: UlidId, T: TimeSource<ID::Ty>, R: RandSource<ID::Ty>,

Source§

impl<ID, T, R> UlidGenerator<ID, T, R> for BasicUlidGenerator<ID, T, R>
where ID: UlidId, T: TimeSource<ID::Ty>, R: RandSource<ID::Ty>,

Source§

impl<ID, T, R> UlidGenerator<ID, T, R> for LockMonoUlidGenerator<ID, T, R>
where ID: UlidId, T: TimeSource<ID::Ty>, R: RandSource<ID::Ty>,