1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
//! Defines the type `AnyRouteMatcher`
use crate::router::non_match::RouteNonMatch;
use crate::router::route::RouteMatcher;
use crate::state::State;
/// Matches any request without restriction (i.e. will accept any request which has already matched
/// the path to the current route). For example, this matcher is used when delegating a path prefix
/// to another router.
///
/// # Examples
///
/// ```rust
/// # fn main() {
/// # use gotham::state::State;
/// # use gotham::router::route::matcher::{AnyRouteMatcher, RouteMatcher};
/// #
/// # State::with_new(|state| {
/// #
/// let matcher = AnyRouteMatcher::new();
///
/// assert!(matcher.is_match(&state).is_ok());
/// #
/// # });
/// # }
/// ```
#[derive(Clone)]
pub struct AnyRouteMatcher {}
impl AnyRouteMatcher {
/// Creates a new `AnyRouteMatcher`
pub fn new() -> Self {
AnyRouteMatcher {}
}
}
impl RouteMatcher for AnyRouteMatcher {
fn is_match(&self, _state: &State) -> Result<(), RouteNonMatch> {
Ok(())
}
}