Struct xitca_web::route::Route

source ·
pub struct Route<R, N, const M: usize> { /* private fields */ }

Implementations§

source§

impl<const M: usize> Route<(), MethodNotAllowedBuilder<()>, M>

source

pub const fn new( methods: [Method; M] ) -> Route<(), MethodNotAllowedBuilder<()>, M>

construct a new Route given array of methods.

Panics

panic when input array is zero length.

source

pub fn route<R>(self, route: R) -> Route<R, MethodNotAllowedBuilder<R>, M>

pass certain Service type to Route so it can be matched against the methods Route contains.

source§

impl<R, N, const M: usize> Route<R, N, M>

source

pub fn next<R1, const M1: usize>( self, next: Route<R1, MethodNotAllowedBuilder<R1>, M1> ) -> Route<R, Route<R1, N, M1>, M>

chain another Route to existing Route type.

Panics

panic when chained Routes contain overlapping Method. Route only do liner method matching and overlapped method(s) will always enter the first Route matched against.

source

pub fn get<R1>(self, get: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn post<R1>(self, post: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn put<R1>(self, put: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn delete<R1>(self, delete: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn head<R1>(self, head: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn options<R1>(self, options: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn connect<R1>(self, connect: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn patch<R1>(self, patch: R1) -> Route<R, Route<R1, N, 1>, M>

source

pub fn trace<R1>(self, trace: R1) -> Route<R, Route<R1, N, 1>, M>

Trait Implementations§

source§

impl<R, N, const M: usize> RouterGen for Route<R, N, M>

§

type Route<R1> = R1

service builder type for generating the final route service.
source§

fn route_gen<R1>(route: R1) -> <Route<R, N, M> as RouterGen>::Route<R1>

route service generator. Read more
source§

fn path_gen(&mut self, prefix: &'static str) -> Cow<'static, str>

path generator. Read more
source§

impl<Arg, R, N, const M: usize> Service<Arg> for Route<R, N, M>
where R: Service<Arg>, N: Service<Arg, Error = <R as Service<Arg>>::Error>, Arg: Clone,

§

type Response = RouteService<<R as Service<Arg>>::Response, <N as Service<Arg>>::Response, M>

The Ok part of output future.
§

type Error = <R as Service<Arg>>::Error

The Err part of output future.
source§

async fn call( &self, arg: Arg ) -> Result<<Route<R, N, M> as Service<Arg>>::Response, <Route<R, N, M> as Service<Arg>>::Error>

Auto Trait Implementations§

§

impl<R, N, const M: usize> RefUnwindSafe for Route<R, N, M>

§

impl<R, N, const M: usize> Send for Route<R, N, M>
where N: Send, R: Send,

§

impl<R, N, const M: usize> Sync for Route<R, N, M>
where N: Sync, R: Sync,

§

impl<R, N, const M: usize> Unpin for Route<R, N, M>
where N: Unpin, R: Unpin,

§

impl<R, N, const M: usize> UnwindSafe for Route<R, N, M>
where N: UnwindSafe, R: UnwindSafe,

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.

§

impl<T> Instrument for T

§

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

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

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> Same for T

§

type Output = T

Should always be Self
source§

impl<S, Arg> ServiceExt<Arg> for S
where S: Service<Arg>,

source§

fn enclosed<T>(self, build: T) -> Pipeline<Self, T, BuildEnclosed>
where T: Service<Result<Self::Response, Self::Error>>, Self: Sized,

Enclose Self with given T as Service<<Self as Service<_>>::Response>>. In other word T would take Self’s Service::Response type as it’s generic argument of Service<_> impl.
source§

fn enclosed_fn<T, Req>(self, func: T) -> Pipeline<Self, T, BuildEnclosedFn>
where T: for<'s> AsyncClosure<(&'s Self::Response, Req)> + Clone, Self: Sized,

Function version of Self::enclosed method.
source§

fn map<F, Res, ResMap>(self, mapper: F) -> Pipeline<Self, F, BuildMap>
where F: Fn(Res) -> ResMap + Clone, Self: Sized,

Mutate <<Self::Response as Service<Req>>::Future as Future>::Output type with given closure.
source§

fn map_err<F, Err, ErrMap>(self, err: F) -> Pipeline<Self, F, BuildMapErr>
where F: Fn(Err) -> ErrMap + Clone, Self: Sized,

Mutate <Self::Response as Service<Req>>::Error type with given closure.
source§

fn and_then<F>(self, factory: F) -> Pipeline<Self, F, BuildAndThen>
where F: Service<Arg>, Self: Sized,

Chain another service factory who’s service takes Self’s Service::Response output as Service::Request.
source§

impl<S, Req> ServiceObject<Req> for S
where S: Service<Req>,

§

type Response = <S as Service<Req>>::Response

§

type Error = <S as Service<Req>>::Error

source§

fn call<'s>( &'s self, req: Req ) -> Pin<Box<dyn Future<Output = Result<<S as ServiceObject<Req>>::Response, <S as ServiceObject<Req>>::Error>> + 's>>
where Req: 's,

source§

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

§

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>,

§

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

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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