Struct gotham::router::route::matcher::accept::AcceptHeaderRouteMatcher [−][src]
A RouteMatcher
that succeeds when the Request
has been made with an Accept
header that
includes one or more supported media types. A missing Accept
header, or the value of */*
will also positvely match. It supports the quality weighted syntax, but does not take the quality
into consideration when matching.
Examples
let supported_media_types = vec![mime::APPLICATION_JSON, mime::IMAGE_STAR]; let matcher = AcceptHeaderRouteMatcher::new(supported_media_types); // No accept header state.put(HeaderMap::new()); assert!(matcher.is_match(&state).is_ok()); // Accept header of `*/*` let mut headers = HeaderMap::new(); headers.insert(ACCEPT, "*/*".parse().unwrap()); state.put(headers); assert!(matcher.is_match(&state).is_ok()); // Accept header of `application/json` let mut headers = HeaderMap::new(); headers.insert(ACCEPT, "application/json".parse().unwrap()); state.put(headers); assert!(matcher.is_match(&state).is_ok()); // Not a valid Accept header let mut headers = HeaderMap::new(); headers.insert(ACCEPT, "text/plain".parse().unwrap()); state.put(headers); assert!(matcher.is_match(&state).is_err()); // At least one supported accept header let mut headers = HeaderMap::new(); headers.insert(ACCEPT, "text/plain".parse().unwrap()); headers.insert(ACCEPT, "application/json".parse().unwrap()); state.put(headers); assert!(matcher.is_match(&state).is_ok()); // Accept header of `image/*` let mut headers = HeaderMap::new(); headers.insert(ACCEPT, "image/*".parse().unwrap()); state.put(headers); assert!(matcher.is_match(&state).is_ok());
Implementations
impl AcceptHeaderRouteMatcher
[src]
Trait Implementations
impl Clone for AcceptHeaderRouteMatcher
[src]
fn clone(&self) -> AcceptHeaderRouteMatcher
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl RouteMatcher for AcceptHeaderRouteMatcher
[src]
fn is_match(&self, state: &State) -> Result<(), RouteNonMatch>
[src]
Determines if the Request
was made using an Accept
header that includes one or more
supported media types. A missing Accept
header, or the value of */*
will also positvely
match.
Quality values within Accept
header values are not considered by the matcher, as the
matcher is only able to indicate whether a successful match has been found.
Auto Trait Implementations
impl RefUnwindSafe for AcceptHeaderRouteMatcher
impl Send for AcceptHeaderRouteMatcher
impl Sync for AcceptHeaderRouteMatcher
impl Unpin for AcceptHeaderRouteMatcher
impl UnwindSafe for AcceptHeaderRouteMatcher
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<M> IntoRouteMatcher for M where
M: RouteMatcher + Send + Sync + 'static,
[src]
M: RouteMatcher + Send + Sync + 'static,
type Output = M
The concrete RouteMatcher each implementation will provide.
pub fn into_route_matcher(Self) -> <M as IntoRouteMatcher>::Output
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,