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>

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]

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]

pub fn not_found<H: Into<RequestHandler>>(&mut self, handler: H) where
    M: Layer<RequestHandler, Service = RequestHandler>, 
[src]

pub fn method_not_allowed<H: Into<RequestHandler>>(&mut self, handler: H) where
    M: Layer<RequestHandler, Service = RequestHandler>, 
[src]

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]

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]

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]

pub fn into_service_with_context<T: Send + Sync + 'static>(
    self,
    context: T
) -> MakeRouterService<T>
[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?;

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]

Auto Trait Implementations

impl<M> !RefUnwindSafe for Builder<M>[src]

impl<M> Send for Builder<M> where
    M: Send
[src]

impl<M> Sync for Builder<M> where
    M: Sync
[src]

impl<M> Unpin for Builder<M> where
    M: Unpin
[src]

impl<M> !UnwindSafe for Builder<M>[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.