pub struct PredicateMatcher<T: ?Sized, P, D1, D2> { /* private fields */ }
Expand description

A matcher which applies predicate on the value.

See predicate.

Implementations§

source§

impl<T, P> PredicateMatcher<T, P, NoDescription, NoDescription>

source

pub fn with_description<D1: PredicateDescription, D2: PredicateDescription>( self, positive_description: D1, negative_description: D2 ) -> PredicateMatcher<T, P, D1, D2>

Configures this instance to provide a more meaningful description.

For example, to make sure the error message is more useful

predicate(|x: &i32| x % 2 == 1)
    .with_description("is odd", "is even")

This is optional as it only provides value when the test fails.

Description can be passed by &str, String or Fn() -> Into<String>.

Trait Implementations§

source§

impl<T: Debug, P, D1: PredicateDescription, D2: PredicateDescription> Matcher for PredicateMatcher<T, P, D1, D2>
where for<'a> P: Fn(&'a T) -> bool,

§

type ActualT = T

The type against which this matcher matches.
source§

fn matches(&self, actual: &T) -> MatcherResult

Returns whether the condition matches the datum actual. Read more
source§

fn describe(&self, result: MatcherResult) -> Description

Returns a description of self or a negative description if matcher_result is DoesNotMatch. Read more
source§

fn explain_match(&self, actual: &Self::ActualT) -> Description

Prepares a String describing how the expected value encoded in this instance matches or does not match the given value actual. Read more
source§

fn and<Right: Matcher<ActualT = Self::ActualT>>( self, right: Right ) -> ConjunctionMatcher<Self, Right>
where Self: Sized,

Constructs a matcher that matches both self and right. Read more
source§

fn or<Right: Matcher<ActualT = Self::ActualT>>( self, right: Right ) -> DisjunctionMatcher<Self, Right>
where Self: Sized,

Constructs a matcher that matches when at least one of self or right matches the input. Read more

Auto Trait Implementations§

§

impl<T: ?Sized, P, D1, D2> RefUnwindSafe for PredicateMatcher<T, P, D1, D2>

§

impl<T: ?Sized, P, D1, D2> Send for PredicateMatcher<T, P, D1, D2>
where D1: Send, D2: Send, P: Send, T: Send,

§

impl<T: ?Sized, P, D1, D2> Sync for PredicateMatcher<T, P, D1, D2>
where D1: Sync, D2: Sync, P: Sync, T: Sync,

§

impl<T: ?Sized, P, D1, D2> Unpin for PredicateMatcher<T, P, D1, D2>
where D1: Unpin, D2: Unpin, P: Unpin, T: Unpin,

§

impl<T: ?Sized, P, D1, D2> UnwindSafe for PredicateMatcher<T, P, D1, D2>
where D1: UnwindSafe, D2: UnwindSafe, P: UnwindSafe, T: UnwindSafe,

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.