Struct Builder

Source
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,
    /* private fields */
}

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§

Source§

impl<M> Builder<M>

Source

pub fn extend<P: Into<Cow<'static, str>>, B: Into<Treemux>>( &self, path: P, routes: B, )

Source

pub fn scope<'b, P: Into<Cow<'b, str>>>( &'b mut self, path: P, ) -> GroupBuilder<'b, Identity, M>
where M: Layer<RequestHandler, Service = RequestHandler>,

Source

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

Source

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

Source

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

Source

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,

Source

pub fn middleware<N>(self, middleware: N) -> Builder<Stack<N, M>>
where N: Layer<M::Service, Service = M::Service>, M: Layer<RequestHandler, Service = RequestHandler>,

Source

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?;
Source

pub fn into_service(self) -> MakeRouterService<()>

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§

Source§

impl Default for Builder<Identity>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<M> From<Builder<M>> for Treemux

Source§

fn from(b: Builder<M>) -> Self

Converts to this type from the input type.
Source§

impl<M> RouterBuilder for Builder<M>
where M: Layer<RequestHandler, Service = RequestHandler>,

Source§

fn handle<P, H>(&self, method: Method, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Insert a value into the router for a specific path indexed by a key. Read more
Source§

fn get<P, H>(&mut self, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Register a handler for GET requests
Source§

fn head<P, H>(&mut self, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Register a handler for HEAD requests
Source§

fn options<P, H>(&mut self, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Register a handler for OPTIONS requests
Source§

fn post<P, H>(&mut self, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Register a handler for POST requests
Source§

fn put<P, H>(&mut self, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Register a handler for PUT requests
Source§

fn patch<P, H>(&mut self, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Register a handler for PATCH requests
Source§

fn delete<P, H>(&mut self, path: P, handler: H)
where P: Into<String>, H: Into<RequestHandler>,

Register a handler for DELETE requests

Auto Trait Implementations§

§

impl<M> Freeze for Builder<M>
where M: Freeze,

§

impl<M> !RefUnwindSafe for Builder<M>

§

impl<M> Send for Builder<M>
where M: Send,

§

impl<M> Sync for Builder<M>
where M: Sync,

§

impl<M> Unpin for Builder<M>
where M: Unpin,

§

impl<M> !UnwindSafe for Builder<M>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more