#[non_exhaustive]pub enum MatchingError {
MissingField(String),
}Expand description
Errors that may be returned by thing-matcher operations.
The matching engine itself is infallible — scoring two things always
produces a crate::MatchResult. The only fallible operation in the
public surface today is crate::Thing::validate, which returns
MatchingError::MissingField when the primary name is absent.
Configuration builders (crate::MatchConfig::default, strict,
lenient) are infallible.
The enum is #[non_exhaustive] so future fallible code paths can add
variants without breaking SemVer for downstream pattern-matches.
use thing_matcher::MatchingError;
let e = MatchingError::MissingField("name".into());
// `Display` is provided by `thiserror`.
assert!(e.to_string().contains("Missing required field"));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
MissingField(String)
A required field was absent. Returned by crate::Thing::validate.
Trait Implementations§
Source§impl Debug for MatchingError
impl Debug for MatchingError
Source§impl Display for MatchingError
impl Display for MatchingError
Source§impl Error for MatchingError
impl Error for MatchingError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for MatchingError
impl RefUnwindSafe for MatchingError
impl Send for MatchingError
impl Sync for MatchingError
impl Unpin for MatchingError
impl UnsafeUnpin for MatchingError
impl UnwindSafe for MatchingError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more