pub struct Router<Method, Handler> { /* private fields */ }Expand description
The main router. This contains a set of routes that can be taken, as well
as a default hnadler for when the request matches none of those routes.
We make no requirements on the Method type here; this is the type used
by the HTTP library to represent the HTTP method (e.g. GET, POST, etc.).
When routes are created, they’re created with this Method type, and when we
do a lookup, we make sure the route matches the method.
We also make no restrictions on the Handler; all that’s returned upon lookup is an immutable reference to the handler, if one exists.
Implementations§
Source§impl<M: Eq, H> Router<M, H>
impl<M: Eq, H> Router<M, H>
Sourcepub fn build() -> Build<M, H>
pub fn build() -> Build<M, H>
Create a builder for the router. See type Build for more
information.
Sourcepub fn lookup<'s, 'p>(
&'s self,
method: &M,
path: &'p str,
) -> Option<(&'s H, Vec<&'p str>)>
pub fn lookup<'s, 'p>( &'s self, method: &M, path: &'p str, ) -> Option<(&'s H, Vec<&'p str>)>
This performs the actual lookup. We take a reference to the method, and a reference to the path, and return the handler and the url parameters, if they exist. Note that the path must be URL decoded, and only contain the path - it must not contain any query parameters.
Sourcepub fn set_default(&mut self, default: H)
pub fn set_default(&mut self, default: H)
Sets the default of the router. This is similar to
[Build::set_default].
Trait Implementations§
Auto Trait Implementations§
impl<Method, Handler> Freeze for Router<Method, Handler>where
Handler: Freeze,
impl<Method, Handler> RefUnwindSafe for Router<Method, Handler>where
Handler: RefUnwindSafe,
Method: RefUnwindSafe,
impl<Method, Handler> Send for Router<Method, Handler>
impl<Method, Handler> Sync for Router<Method, Handler>
impl<Method, Handler> Unpin for Router<Method, Handler>
impl<Method, Handler> UnwindSafe for Router<Method, Handler>where
Handler: UnwindSafe,
Method: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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