Struct treemux::Builder [−][src]
pub struct Builder<M> {
pub head_can_use_get: bool,
pub redirect_trailing_slash: bool,
pub redirect_clean_path: bool,
pub redirect_behavior: Option<RedirectBehavior>,
pub redirect_method_behavior: HashMap<Method, RedirectBehavior>,
pub remove_catch_all_trailing_slash: bool,
pub escape_added_routes: bool,
// some fields omitted
}
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>
RedirectBehavior sets the default redirect behavior when RedirectTrailingSlash or RedirectCleanPath are true. The default value is Redirect301.
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
pub fn scope<'b, P: Into<Cow<'b, str>>>(
&'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>,
pub fn method_not_allowed<H: Into<RequestHandler>>(&mut self, handler: H) where
M: Layer<RequestHandler, Service = RequestHandler>,
pub fn method_not_allowed<H: Into<RequestHandler>>(&mut self, handler: H) where
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>,
pub fn global_options<H: Into<RequestHandler>>(&mut self, handler: H) where
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,
pub fn middleware<N>(self, middleware: N) -> Builder<Stack<N, M>> where
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>
pub fn into_service_with_context<T: Send + Sync + 'static>(
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?;
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
Insert a value into the router for a specific path indexed by a key. Read more
Register a handler for GET
requests
Register a handler for HEAD
requests
Register a handler for OPTIONS
requests
Register a handler for POST
requests
Register a handler for PUT
requests
Register a handler for PATCH
requests
Auto Trait Implementations
impl<M> !RefUnwindSafe for Builder<M>
impl<M> !UnwindSafe for Builder<M>
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more