pub struct AcceptHeaderRouteMatcher { /* private fields */ }
Expand description
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
Trait Implementations
sourceimpl Clone for AcceptHeaderRouteMatcher
impl Clone for AcceptHeaderRouteMatcher
sourcefn clone(&self) -> AcceptHeaderRouteMatcher
fn clone(&self) -> AcceptHeaderRouteMatcher
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl RouteMatcher for AcceptHeaderRouteMatcher
impl RouteMatcher for AcceptHeaderRouteMatcher
sourcefn is_match(&self, state: &State) -> Result<(), RouteNonMatch>
fn is_match(&self, state: &State) -> Result<(), RouteNonMatch>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<M> IntoRouteMatcher for M where
M: 'static + RouteMatcher + Send + Sync,
impl<M> IntoRouteMatcher for M where
M: 'static + RouteMatcher + Send + Sync,
type Output = M
type Output = M
The concrete RouteMatcher each implementation will provide.
sourcefn into_route_matcher(self) -> <M as IntoRouteMatcher>::Output
fn into_route_matcher(self) -> <M as IntoRouteMatcher>::Output
Transform into a RouteMatcher
of the the associated type identified by Output
.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more