AggregateError

Enum AggregateError 

Source
pub enum AggregateError<T: Error> {
    UserError(T),
    AggregateConflict,
    DatabaseConnectionError(Box<dyn Error + Send + Sync + 'static>),
    DeserializationError(Box<dyn Error + Send + Sync + 'static>),
    UnexpectedError(Box<dyn Error + Send + Sync + 'static>),
}
Expand description

The base error for the framework.

Variants§

§

UserError(T)

This is the error returned when a user violates a business rule. The payload within AggregateError::UserError should be used to pass information to inform the user of the nature of problem.

The UserErrorPayload struct has been provided as a reference implementation for this purpose.

§Handling

In a Restful application this should translate to a 400 response status.

§

AggregateConflict

A command has been rejected due to a conflict with another command on the same aggregate instance. This is handled by optimistic locking in systems backed by an RDBMS.

§Handling

In a Restful application this usually translates to a 503 or 429 response status, often with a Retry-After response header indicating that the user should try again.

§

DatabaseConnectionError(Box<dyn Error + Send + Sync + 'static>)

A error occurred while attempting to read or write from a database.

§

DeserializationError(Box<dyn Error + Send + Sync + 'static>)

A deserialization error occurred due to invalid JSON.

§

UnexpectedError(Box<dyn Error + Send + Sync + 'static>)

A technical error was encountered that prevented the command from being applied to the aggregate. In general the accompanying message should be logged for investigation rather than returned to the user.

Trait Implementations§

Source§

impl<T: Debug + Error> Debug for AggregateError<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> Display for AggregateError<T>
where T: Display + Error,

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Error> Error for AggregateError<T>
where Self: Debug + Display,

1.30.0 · Source§

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

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl<T: Error> From<Error> for AggregateError<T>

Source§

fn from(err: Error) -> Self

Converts to this type from the input type.
Source§

impl<T: Error> From<PersistenceError> for AggregateError<T>

Source§

fn from(err: PersistenceError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<T> Freeze for AggregateError<T>
where T: Freeze,

§

impl<T> !RefUnwindSafe for AggregateError<T>

§

impl<T> Send for AggregateError<T>
where T: Send,

§

impl<T> Sync for AggregateError<T>
where T: Sync,

§

impl<T> Unpin for AggregateError<T>
where T: Unpin,

§

impl<T> !UnwindSafe for AggregateError<T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.