pub trait MatchArg<T> {
// Required methods
fn matches(&self, arg: &T) -> Result<(), String>;
fn describe(&self) -> String;
}
Expand description
Argument matcher
Basically it is predicate telling whether argument value satisfies to some criteria. However, in case of mismatch it explains what and why doesn’t match.
Required Methods§
Implementors§
impl<E: Debug, T: Debug, M: MatchArg<E>> MatchArg<Result<T, E>> for MatchErr<E, M>
impl<T> MatchArg<T> for MatchAny
impl<T> MatchArg<T> for MatchAnyT<T>
impl<T, F: Fn(&T) -> Result<(), String>> MatchArg<T> for FnMatchArg<T, F>
impl<T, F: Fn(&T) -> bool> MatchArg<T> for BoolFnMatchArg<T, F>
impl<T, M: MatchArg<T>> MatchArg<&T> for MatchRef<T, M>
impl<T: Ord + Debug, R: RangeBounds<T>> MatchArg<T> for RangeMatchArg<T, R>
impl<T: PartialEq + Debug> MatchArg<T> for EqMatchArg<T>
impl<T: PartialEq + Debug> MatchArg<T> for NeMatchArg<T>
impl<T: PartialOrd + Debug> MatchArg<T> for GeMatchArg<T>
impl<T: PartialOrd + Debug> MatchArg<T> for GtMatchArg<T>
impl<T: PartialOrd + Debug> MatchArg<T> for LeMatchArg<T>
impl<T: PartialOrd + Debug> MatchArg<T> for LtMatchArg<T>
impl<T: Debug, E: Debug, M: MatchArg<T>> MatchArg<Result<T, E>> for MatchOk<T, M>
impl<T: Debug, M0: MatchArg<T>, M1: MatchArg<T>> MatchArg<T> for AndMatchArg<T, M0, M1>
impl<T: Debug, M0: MatchArg<T>, M1: MatchArg<T>> MatchArg<T> for OrMatchArg<T, M0, M1>
impl<T: Debug, M: MatchArg<T>> MatchArg<Option<T>> for MatchSome<T, M>
impl<T: Debug, M: MatchArg<T>> MatchArg<T> for NotMatchArg<T, M>
impl<T: Debug, M: MatchArg<T>, F: Fn() -> String> MatchArg<T> for WithDescriptionFn<T, M, F>
impl<T: Debug, M: MatchArg<T>, F: Fn(&T) -> String> MatchArg<T> for WithMessageFn<T, M, F>
impl<T: Debug, S: Debug + PartialEq<T>> MatchArg<T> for S
Matches argument with value of same type using equality.