//! Field matching validation.
//!
//! ```rust
//! #[derive(garde::Validate)]
//! struct Test {
//! #[garde(skip)]
//! foo: String,
//! #[garde(matches(foo))]
//! bar: String,
//! }
//! ```
//!
//! The entrypoint is the [`Matches`] trait. Implementing this trait for a type allows that type to be used with the `#[garde(matches)]` rule.
//!
//! This trait has a blanket implementation for all `T: PartialEq<O>, O`.
use crateError;