Struct treemux::Builder [−][src]
Fields
head_can_use_get: bool
Allows the router to use the GET
handler to respond to
HEAD
requests if no explicit HEAD
handler has been added for the
matching pattern. This is true by default.
redirect_trailing_slash: bool
Enables automatic redirection in case the router doesn't find a matching route for the current request path but a handler for the path with or without the trailing slash exists. This is true by default.
redirect_clean_path: bool
Allows the router to try clean the current request path, if no handler is registered for it.This is true by default.
redirect_behavior: Option<RedirectBehavior>
Overrides the default behavior for a particular HTTP method. The key is the method name, and the value is the behavior to use for that method.
redirect_method_behavior: HashMap<Method, RedirectBehavior>
Overrides the default behavior for a particular HTTP method. The key is the method name, and the value is the behavior to use for that method.
remove_catch_all_trailing_slash: bool
Removes the trailing slash when a catch-all pattern is matched, if set to true. By default, catch-all paths are never redirected.
escape_added_routes: bool
Controls URI escaping behavior when adding a route to the tree. If set to true, the router will add both the route as originally passed, and a version passed through url::parse. This behavior is disabled by default.
Implementations
impl<M> Builder<M>
[src]
pub fn extend<P: Into<Cow<'static, str>>, B: Into<Treemux>>(
&self,
path: P,
routes: B
)
[src]
&self,
path: P,
routes: B
)
pub fn scope<'b, P: Into<Cow<'b, str>>>(
&'b mut self,
path: P
) -> GroupBuilder<'b, Identity, M> where
M: Layer<RequestHandler, Service = RequestHandler>,
[src]
&'b mut self,
path: P
) -> GroupBuilder<'b, Identity, M> where
M: Layer<RequestHandler, Service = RequestHandler>,
pub fn not_found<H: Into<RequestHandler>>(&mut self, handler: H) where
M: Layer<RequestHandler, Service = RequestHandler>,
[src]
M: Layer<RequestHandler, Service = RequestHandler>,
pub fn method_not_allowed<H: Into<RequestHandler>>(&mut self, handler: H) where
M: Layer<RequestHandler, Service = RequestHandler>,
[src]
M: Layer<RequestHandler, Service = RequestHandler>,
Register a handler for when the path matches a different method than the requested one
pub fn global_options<H: Into<RequestHandler>>(&mut self, handler: H) where
M: Layer<RequestHandler, Service = RequestHandler>,
[src]
M: Layer<RequestHandler, Service = RequestHandler>,
Register a handler for when the path matches a different method than the requested one
pub fn handle_panics<H, R>(&mut self, handler: H) where
R: Future<Output = Result<Response<Body>, Error>> + Send + 'static,
H: Fn(Box<dyn Any + Send>) -> R + Send + Sync + 'static,
[src]
R: Future<Output = Result<Response<Body>, Error>> + Send + 'static,
H: Fn(Box<dyn Any + Send>) -> R + Send + Sync + 'static,
pub fn middleware<N>(self, middleware: N) -> Builder<Stack<N, M>> where
N: Layer<M::Service, Service = M::Service>,
M: Layer<RequestHandler, Service = RequestHandler>,
[src]
N: Layer<M::Service, Service = M::Service>,
M: Layer<RequestHandler, Service = RequestHandler>,
pub fn into_service_with_context<T: Send + Sync + 'static>(
self,
context: T
) -> MakeRouterService<T>
[src]
self,
context: T
) -> MakeRouterService<T>
Converts the Treemux
into a Service
which you can serve directly with Hyper
.
If you have an existing Service
that you want to incorporate a Treemux
into, see
Treemux::serve
.
// Our router... let router = Treemux::builder(); // Convert it into a service... let service = router.into_service(); // Serve with hyper hyper::Server::bind(&([127, 0, 0, 1], 3030).into()) .serve(service) .await?;
pub fn into_service(self) -> MakeRouterService<()>
[src]
Converts the Treemux
into a Service
which you can serve directly with Hyper
.
If you have an existing Service
that you want to incorporate a Treemux
into, see
Treemux::serve
.
// Our router... let router = Treemux::builder(); // Convert it into a service... let service = router.into_service(); // Serve with hyper hyper::Server::bind(&([127, 0, 0, 1], 3030).into()) .serve(service) .await?;
Trait Implementations
impl Default for Builder<Identity>
[src]
impl<M> From<Builder<M>> for Treemux
[src]
impl<M> RouterBuilder for Builder<M> where
M: Layer<RequestHandler, Service = RequestHandler>,
[src]
M: Layer<RequestHandler, Service = RequestHandler>,
fn handle<P, H>(&self, method: Method, path: P, handler: H) where
P: Into<String>,
H: Into<RequestHandler>,
[src]
P: Into<String>,
H: Into<RequestHandler>,
fn get<P, H, R>(&mut self, path: P, handler: H) where
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
[src]
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
fn head<P, H, R>(&mut self, path: P, handler: H) where
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
[src]
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
fn options<P, H, R>(&mut self, path: P, handler: H) where
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
[src]
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
fn post<P, H, R>(&mut self, path: P, handler: H) where
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
[src]
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
fn put<P, H, R>(&mut self, path: P, handler: H) where
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
[src]
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
fn patch<P, H, R>(&mut self, path: P, handler: H) where
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
[src]
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
fn delete<P, H, R>(&mut self, path: P, handler: H) where
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
[src]
P: Into<String>,
H: Fn(Request<Body>) -> R + Send + Sync + 'static,
R: Future<Output = ResponseResult> + Send + 'static,
Auto Trait Implementations
impl<M> !RefUnwindSafe for Builder<M>
[src]
impl<M> Send for Builder<M> where
M: Send,
[src]
M: Send,
impl<M> Sync for Builder<M> where
M: Sync,
[src]
M: Sync,
impl<M> Unpin for Builder<M> where
M: Unpin,
[src]
M: Unpin,
impl<M> !UnwindSafe for Builder<M>
[src]
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> 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<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>,