[][src]Enum cqrs_core::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<(), Self>[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 Clone for Precondition[src]

impl Copy for Precondition[src]

impl Eq for Precondition[src]

impl PartialEq<Precondition> for Precondition[src]

impl Debug for Precondition[src]

impl Display for Precondition[src]

impl Hash for Precondition[src]

Auto Trait Implementations

Blanket Implementations

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

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

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

type Owned = T

The resulting type after obtaining ownership.

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]