Skip to main content

DomainError

Enum DomainError 

Source
pub enum DomainError {
Show 15 variants LifecycleRefused { operation: &'static str, phase: CeremonyLifecyclePhase, }, EmptyField { field: &'static str, }, FieldTooLong { field: &'static str, actual: usize, max: usize, }, InvalidCharacters { field: &'static str, }, OutOfRange { field: &'static str, value: f64, min: f64, max: f64, }, MustBeNonZero { field: &'static str, }, EmptyCollection { field: &'static str, }, InvalidTransition { from: &'static str, to: &'static str, }, InvariantViolated { reason: &'static str, }, NotFound { what: &'static str, }, InvalidDocument { reason: String, }, AlreadyExists { what: &'static str, }, Conflict { what: &'static str, }, NoValidProposal { contract_id: String, }, UnreadableCeremonyEvent { event_type: &'static str, version: u32, reason: &'static str, },
}
Expand description

All errors that the core domain can raise.

Variants are intentionally coarse-grained at the boundary: each variant names the invariant that was violated, not the primitive type involved.

Variants§

§

LifecycleRefused

Fields

§operation: &'static str
§

EmptyField

A required textual field was empty or whitespace-only.

Fields

§field: &'static str
§

FieldTooLong

A textual field exceeded its maximum allowed length.

Fields

§field: &'static str
§actual: usize
§max: usize
§

InvalidCharacters

A textual field contained characters outside the allowed set.

Fields

§field: &'static str
§

OutOfRange

A numeric value fell outside its allowed range.

Fields

§field: &'static str
§value: f64
§min: f64
§max: f64
§

MustBeNonZero

A numeric value that must be non-zero was zero.

Fields

§field: &'static str
§

EmptyCollection

A collection that must contain at least one element was empty.

Fields

§field: &'static str
§

InvalidTransition

A state transition was attempted from an invalid state.

Fields

§from: &'static str
§to: &'static str
§

InvariantViolated

An aggregate rejected a command because its preconditions were not met (e.g. registering an agent into a sealed council).

Fields

§reason: &'static str
§

NotFound

A lookup in a domain registry did not resolve.

Fields

§what: &'static str
§

InvalidDocument

A document the caller authored describes something that cannot be built, and saying which part requires naming it.

Distinct from the field-level complaints above: those name one field that is wrong on its own, and this one names parts that are each acceptable and do not fit together — a stage owned by nobody at the table, a name that collides with a generated one. The reason is owned rather than &'static str because the elements at fault carry the caller’s own names, and a defect that cannot say which element it is about sends an author looking through the whole document.

Fields

§reason: String
§

AlreadyExists

A domain entity with the same identity already exists.

Fields

§what: &'static str
§

Conflict

Somebody else changed this first.

A distinct variant rather than an invariant violation, because the two ask different things of a caller. An invariant that was violated will be violated again by the same call; a conflict is the expected outcome of two callers reaching the same thing at once, and the answer is to reload and decide, not to give up.

Collapsing them made a caller unable to tell “try again from what is stored now” from “this can never work”.

Fields

§what: &'static str
§

NoValidProposal

No candidate satisfied the structured output contract.

Fields

§contract_id: String
§

UnreadableCeremonyEvent

A sealed ceremony event could not be read back as the type and payload schema version its record names.

Names both so an operator can tell which record and which reader disagree: a version no reader exists for, a payload that is not an event, or a payload tagged as a different type.

Fields

§event_type: &'static str
§version: u32
§reason: &'static str

Trait Implementations§

Source§

impl Clone for DomainError

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DomainError

Source§

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

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

impl Display for DomainError

Source§

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

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

impl Error for DomainError

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 From<DomainError> for BudgetError

Source§

fn from(value: DomainError) -> Self

Converts to this type from the input type.
Source§

impl From<DomainError> for ArtifactStoreError

Source§

fn from(source: DomainError) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for DomainError

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DomainError

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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 = !

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

fn try_from(value: U) -> Result<T, !>

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.