[][src]Enum cqrs::Precondition

pub enum Precondition {
    New,
    Exists,
    ExpectedVersion(Version),
}

A precondition that must be upheld for a command to be executed or for events to be persisted.

Variants

New

Requires that the target aggregate must not have had any events previously applied to it.

Exists

Requires that the target event at least exist, whether as a snapshot, or as having had at least one event applied.

ExpectedVersion(Version)

Requires that the target aggregate have the exact version specified.

Methods

impl Precondition[src]

pub fn verify(
    self,
    current_version: Option<Version>
) -> Result<(), Precondition>
[src]

Verifies that the precondition holds, given the current_version. If the precondition is violated, an error is returned with the precondition.

Trait Implementations

impl From<Version> for Precondition[src]

impl PartialEq<Precondition> for Precondition[src]

impl Display for Precondition[src]

impl Hash for Precondition[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Copy for Precondition[src]

impl Debug for Precondition[src]

impl Clone for Precondition[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Eq for Precondition[src]

impl From<Precondition> for PreconditionFailed[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> CqrsError for T where
    T: Debug + Display + Send + Sync + 'static, 
[src]