pub struct UuidV4Generator<Id>(/* private fields */);Expand description
Generates ids from a random (v4) UUID.
§Examples
use ddd_toolkit_core::adapter::id::UuidV4Generator;
use ddd_toolkit_core::domain::{EntityId, ValueObject};
use ddd_toolkit_core::port::id::IdGenerator;
use std::convert::Infallible;
use std::fmt::Display;
#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
struct OrderId(uuid::Uuid);
impl ValueObject for OrderId {}
impl Display for OrderId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.0)
}
}
impl EntityId for OrderId {}
impl TryFrom<uuid::Uuid> for OrderId {
type Error = Infallible;
fn try_from(value: uuid::Uuid) -> Result<Self, Self::Error> {
Ok(Self(value))
}
}
let generator = UuidV4Generator::<OrderId>::new();
// two calls never collide
assert_ne!(generator.generate(), generator.generate());Implementations§
Source§impl<Id> UuidV4Generator<Id>
impl<Id> UuidV4Generator<Id>
Sourcepub fn new() -> UuidV4Generator<Id>
pub fn new() -> UuidV4Generator<Id>
Creates a new UuidV4Generator.
Trait Implementations§
Source§impl<Id> Clone for UuidV4Generator<Id>where
Id: Clone,
impl<Id> Clone for UuidV4Generator<Id>where
Id: Clone,
Source§fn clone(&self) -> UuidV4Generator<Id>
fn clone(&self) -> UuidV4Generator<Id>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<Id> Debug for UuidV4Generator<Id>where
Id: Debug,
impl<Id> Debug for UuidV4Generator<Id>where
Id: Debug,
Source§impl<Id> Default for UuidV4Generator<Id>
impl<Id> Default for UuidV4Generator<Id>
Source§fn default() -> UuidV4Generator<Id>
fn default() -> UuidV4Generator<Id>
Returns the “default value” for a type. Read more
Source§impl<Id> IdGenerator<Id> for UuidV4Generator<Id>
impl<Id> IdGenerator<Id> for UuidV4Generator<Id>
Auto Trait Implementations§
impl<Id> Freeze for UuidV4Generator<Id>
impl<Id> RefUnwindSafe for UuidV4Generator<Id>
impl<Id> Send for UuidV4Generator<Id>
impl<Id> Sync for UuidV4Generator<Id>
impl<Id> Unpin for UuidV4Generator<Id>
impl<Id> UnsafeUnpin for UuidV4Generator<Id>
impl<Id> UnwindSafe for UuidV4Generator<Id>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more