pub struct TransactionId(/* private fields */);Expand description
Value Object: TransactionId
Represents a unique identifier for a payment transaction in the paywall system.
Domain Rules:
- Must be a valid UUID
- Immutable once created
- Globally unique within the system
This is a Value Object:
- Defined by its value, not identity
- Immutable
- Self-validating
- Compared by value equality
Implementations§
Source§impl TransactionId
impl TransactionId
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new TransactionId with a random UUID
§Examples
use allsource_core::domain::value_objects::TransactionId;
let transaction_id = TransactionId::new();
assert!(!transaction_id.is_nil());Sourcepub fn from_uuid(uuid: Uuid) -> Self
pub fn from_uuid(uuid: Uuid) -> Self
Create a TransactionId from an existing UUID
§Examples
use allsource_core::domain::value_objects::TransactionId;
use uuid::Uuid;
let uuid = Uuid::new_v4();
let transaction_id = TransactionId::from_uuid(uuid);
assert_eq!(transaction_id.as_uuid(), uuid);Sourcepub fn parse(value: &str) -> Result<Self>
pub fn parse(value: &str) -> Result<Self>
Parse a TransactionId from a string
§Errors
Returns error if the string is not a valid UUID
§Examples
use allsource_core::domain::value_objects::TransactionId;
let transaction_id = TransactionId::parse("550e8400-e29b-41d4-a716-446655440000").unwrap();
assert_eq!(transaction_id.to_string(), "550e8400-e29b-41d4-a716-446655440000");Trait Implementations§
Source§impl AsRef<Uuid> for TransactionId
impl AsRef<Uuid> for TransactionId
Source§impl Clone for TransactionId
impl Clone for TransactionId
Source§fn clone(&self) -> TransactionId
fn clone(&self) -> TransactionId
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TransactionId
impl Debug for TransactionId
Source§impl Default for TransactionId
impl Default for TransactionId
Source§impl<'de> Deserialize<'de> for TransactionId
impl<'de> Deserialize<'de> for TransactionId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for TransactionId
impl Display for TransactionId
Source§impl From<TransactionId> for Uuid
impl From<TransactionId> for Uuid
Source§fn from(transaction_id: TransactionId) -> Self
fn from(transaction_id: TransactionId) -> Self
Converts to this type from the input type.
Source§impl From<Uuid> for TransactionId
impl From<Uuid> for TransactionId
Source§impl Hash for TransactionId
impl Hash for TransactionId
Source§impl PartialEq for TransactionId
impl PartialEq for TransactionId
Source§impl Serialize for TransactionId
impl Serialize for TransactionId
Source§impl TryFrom<&str> for TransactionId
impl TryFrom<&str> for TransactionId
Source§impl TryFrom<String> for TransactionId
impl TryFrom<String> for TransactionId
impl Copy for TransactionId
impl Eq for TransactionId
impl StructuralPartialEq for TransactionId
Auto Trait Implementations§
impl Freeze for TransactionId
impl RefUnwindSafe for TransactionId
impl Send for TransactionId
impl Sync for TransactionId
impl Unpin for TransactionId
impl UnwindSafe for TransactionId
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.