#[non_exhaustive]pub enum DomainError {
Show 20 variants
InvalidStateTransition(String),
InvalidStreamState(String),
InvalidSessionState(String),
InvalidFrame(String),
InvariantViolation(String),
InvalidPriority(String),
InvalidPath(String),
SessionNotFound(String),
StreamNotFound(String),
TooManyStreams(String),
Logic(String),
Io(String),
NotFound(String),
ConcurrencyConflict(String),
CompressionError(String),
ValidationError(String),
InvalidInput(String),
InternalError(String),
SecurityViolation(String),
ResourceExhausted(String),
}Expand description
Domain-specific errors
All domain errors are value types with no external dependencies. Uses thiserror for ergonomic error handling.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
InvalidStateTransition(String)
Invalid state transition attempted
InvalidStreamState(String)
Invalid stream state
InvalidSessionState(String)
Invalid session state
InvalidFrame(String)
Invalid frame structure or content
InvariantViolation(String)
Stream invariant violation
InvalidPriority(String)
Invalid priority value (must be 1-255)
InvalidPath(String)
Invalid JSON path format
SessionNotFound(String)
Session not found
StreamNotFound(String)
Stream not found
TooManyStreams(String)
Too many concurrent streams
Logic(String)
General domain logic error
Io(String)
I/O operation failed
NotFound(String)
Resource not found
ConcurrencyConflict(String)
Concurrency conflict detected
CompressionError(String)
Compression operation failed
ValidationError(String)
Validation failed
InvalidInput(String)
Invalid input provided
InternalError(String)
Internal error (should not happen)
SecurityViolation(String)
Security policy violation
ResourceExhausted(String)
Resource exhausted (memory, connections, etc.)
Implementations§
Source§impl DomainError
impl DomainError
Sourcepub fn invariant_violation(message: impl Into<String>) -> DomainError
pub fn invariant_violation(message: impl Into<String>) -> DomainError
Create an invariant violation error
Sourcepub fn invalid_transition(from: &str, to: &str) -> DomainError
pub fn invalid_transition(from: &str, to: &str) -> DomainError
Create an invalid state transition error
Trait Implementations§
Source§impl Debug for DomainError
impl Debug for DomainError
Source§impl Display for DomainError
impl Display for DomainError
Source§impl Error for DomainError
impl Error for DomainError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Source§impl From<DomainError> for ApplicationError
impl From<DomainError> for ApplicationError
Source§fn from(source: DomainError) -> Self
fn from(source: DomainError) -> Self
Converts to this type from the input type.
Source§impl From<DomainError> for SchemaValidationError
impl From<DomainError> for SchemaValidationError
Source§fn from(error: DomainError) -> SchemaValidationError
fn from(error: DomainError) -> SchemaValidationError
Converts to this type from the input type.
Source§impl From<String> for DomainError
impl From<String> for DomainError
Source§fn from(error: String) -> DomainError
fn from(error: String) -> DomainError
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for DomainError
impl RefUnwindSafe for DomainError
impl Send for DomainError
impl Sync for DomainError
impl Unpin for DomainError
impl UnwindSafe for DomainError
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> 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 more