[][src]Trait ensure::Ensure

pub trait Ensure<T>: Sized {
    type EnsureAction: Meet<Met = T>;
    fn check_ensure(
        self
    ) -> Result<CheckEnsureResult<T, Self::EnsureAction>, <Self::EnsureAction as Meet>::Error>; fn ensure(self) -> Result<T, <Self::EnsureAction as Meet>::Error> { ... }
fn ensure_verify(self) -> Result<T, <Self::EnsureAction as Meet>::Error>
    where
        Self: Clone,
        <Self::EnsureAction as Meet>::Error: From<VerificationError>
, { ... } }

Implement for types of objects that can be brought to target state T

Associated Types

type EnsureAction: Meet<Met = T>

Loading content...

Required methods

fn check_ensure(
    self
) -> Result<CheckEnsureResult<T, Self::EnsureAction>, <Self::EnsureAction as Meet>::Error>

Checks if target state is already Met or provides EnsureAction object which can by used to bring external state to target state by calling its meet() method

Loading content...

Provided methods

fn ensure(self) -> Result<T, <Self::EnsureAction as Meet>::Error>

Ensure target state by calling check_ensure() and if not Met calling meet() on EnsureAction

fn ensure_verify(self) -> Result<T, <Self::EnsureAction as Meet>::Error> where
    Self: Clone,
    <Self::EnsureAction as Meet>::Error: From<VerificationError>, 

Ensure target state and then verify that EnsureAction actually brought external state to target state by calling check_ensure() on clone of self

Loading content...

Implementors

impl<T, E, A, F> Ensure<T> for F where
    F: FnOnce() -> Result<CheckEnsureResult<T, A>, E>,
    A: Meet<Met = T, Error = E>, 
[src]

type EnsureAction = A

fn ensure(self) -> Result<T, <Self::EnsureAction as Meet>::Error>[src]

fn ensure_verify(self) -> Result<T, <Self::EnsureAction as Meet>::Error> where
    Self: Clone,
    <Self::EnsureAction as Meet>::Error: From<VerificationError>, 
[src]

Loading content...