Struct WebService
pub struct WebService<State = ()> { /* private fields */ }http only.Expand description
A basic web service that can be used to serve HTTP requests.
Note that this service boxes all the internal services, so it is not as efficient as it could be.
For those locations where you need do not desire the convenience over performance,
you can instead use a tuple of (M, S) tuples, where M is a matcher and S is a service,
e.g. ((MethodMatcher::GET, service_a), (MethodMatcher::POST, service_b), service_fallback).
Implementations§
§impl WebService
impl WebService
pub fn new() -> WebService
pub fn new() -> WebService
create a new web service
§impl<State> WebService<State>
impl<State> WebService<State>
pub fn new_with_state(state: State) -> WebService<State>
pub fn with_get<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_get<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a GET route to the web service, using the given service.
pub fn set_get<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_get<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a GET route to the web service, using the given service.
pub fn with_post<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_post<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a POST route to the web service, using the given service.
pub fn set_post<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_post<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a POST route to the web service, using the given service.
pub fn with_put<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_put<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a PUT route to the web service, using the given service.
pub fn set_put<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_put<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a PUT route to the web service, using the given service.
pub fn with_delete<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_delete<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a DELETE route to the web service, using the given service.
pub fn set_delete<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_delete<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a DELETE route to the web service, using the given service.
pub fn with_patch<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_patch<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a PATCH route to the web service, using the given service.
pub fn set_patch<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_patch<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a PATCH route to the web service, using the given service.
pub fn with_head<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_head<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a HEAD route to the web service, using the given service.
pub fn set_head<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_head<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a HEAD route to the web service, using the given service.
pub fn with_options<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_options<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a OPTIONS route to the web service, using the given service.
pub fn set_options<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_options<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a OPTIONS route to the web service, using the given service.
pub fn with_trace<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_trace<I, T>(self, path: &str, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a TRACE route to the web service, using the given service.
pub fn set_trace<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_trace<I, T>(
&mut self,
path: &str,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a TRACE route to the web service, using the given service.
pub fn with_nest_make_fn(
self,
prefix: &str,
configure_svc: impl FnOnce(WebService<State>) -> WebService<State>,
) -> WebService<State>
pub fn with_nest_make_fn( self, prefix: &str, configure_svc: impl FnOnce(WebService<State>) -> WebService<State>, ) -> WebService<State>
Nest a web service under the given path.
The nested service will receive a request with the path prefix removed.
Note: this sub-webservice is configured with the same State this router has.
pub fn set_nest_make_fn(
&mut self,
prefix: &str,
configure_svc: impl FnOnce(WebService<State>) -> WebService<State>,
) -> &mut WebService<State>
pub fn set_nest_make_fn( &mut self, prefix: &str, configure_svc: impl FnOnce(WebService<State>) -> WebService<State>, ) -> &mut WebService<State>
Nest a web service under the given path.
The nested service will receive a request with the path prefix removed.
Note: this sub-webservice is configured with the same State this router has.
pub fn with_nest_service<I, T>(
self,
prefix: impl AsRef<str>,
service: I,
) -> WebService<State>where
I: IntoEndpointService<T>,
<I as IntoEndpointService<T>>::Service: Service<Request, Output = Response, Error = Infallible>,
pub fn with_nest_service<I, T>(
self,
prefix: impl AsRef<str>,
service: I,
) -> WebService<State>where
I: IntoEndpointService<T>,
<I as IntoEndpointService<T>>::Service: Service<Request, Output = Response, Error = Infallible>,
Nest a web service under the given path.
The nested service will receive a request with the path prefix removed.
Warning: This sub-service has no notion of the state this webservice has. If you want to create a nested-service that shares the same state this webservice has, use WebService::set_nest_make_fn instead.
pub fn set_nest_service<I, T>(
&mut self,
prefix: impl AsRef<str>,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointService<T>,
<I as IntoEndpointService<T>>::Service: Service<Request, Output = Response, Error = Infallible>,
pub fn set_nest_service<I, T>(
&mut self,
prefix: impl AsRef<str>,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointService<T>,
<I as IntoEndpointService<T>>::Service: Service<Request, Output = Response, Error = Infallible>,
Nest a web service under the given path.
The nested service will receive a request with the path prefix removed.
Warning: This sub-service has no notion of the state this webservice has. If you want to create a nested-service that shares the same state this webservice has, use WebService::set_nest_make_fn instead.
pub fn with_file(
self,
prefix: &str,
path: impl AsRef<Path>,
mime: Mime,
) -> WebService<State>
pub fn with_file( self, prefix: &str, path: impl AsRef<Path>, mime: Mime, ) -> WebService<State>
serve the given file under the given path.
pub fn set_file(
&mut self,
prefix: &str,
path: impl AsRef<Path>,
mime: Mime,
) -> &mut WebService<State>
pub fn set_file( &mut self, prefix: &str, path: impl AsRef<Path>, mime: Mime, ) -> &mut WebService<State>
serve the given file under the given path.
pub fn with_dir(self, prefix: &str, path: impl AsRef<Path>) -> WebService<State>
pub fn with_dir(self, prefix: &str, path: impl AsRef<Path>) -> WebService<State>
serve the given directory under the given path.
pub fn set_dir(
&mut self,
prefix: &str,
path: impl AsRef<Path>,
) -> &mut WebService<State>
pub fn set_dir( &mut self, prefix: &str, path: impl AsRef<Path>, ) -> &mut WebService<State>
serve the given directory under the given path.
pub fn with_dir_with_serve_mode(
self,
prefix: &str,
path: impl AsRef<Path>,
mode: DirectoryServeMode,
) -> WebService<State>
pub fn with_dir_with_serve_mode( self, prefix: &str, path: impl AsRef<Path>, mode: DirectoryServeMode, ) -> WebService<State>
serve the given directory under the given path, with a custom serve move.
pub fn set_dir_with_serve_mode(
&mut self,
prefix: &str,
path: impl AsRef<Path>,
mode: DirectoryServeMode,
) -> &mut WebService<State>
pub fn set_dir_with_serve_mode( &mut self, prefix: &str, path: impl AsRef<Path>, mode: DirectoryServeMode, ) -> &mut WebService<State>
serve the given directory under the given path, with a custom serve move.
pub fn with_dir_embed(
self,
prefix: &str,
dir: Dir<'static>,
) -> WebService<State>
pub fn with_dir_embed( self, prefix: &str, dir: Dir<'static>, ) -> WebService<State>
serve the given embedded directory under the given path.
pub fn set_dir_embed(
&mut self,
prefix: &str,
dir: Dir<'static>,
) -> &mut WebService<State>
pub fn set_dir_embed( &mut self, prefix: &str, dir: Dir<'static>, ) -> &mut WebService<State>
serve the given embedded directory under the given path.
pub fn with_dir_embed_with_serve_mode(
self,
prefix: &str,
dir: Dir<'static>,
mode: DirectoryServeMode,
) -> WebService<State>
pub fn with_dir_embed_with_serve_mode( self, prefix: &str, dir: Dir<'static>, mode: DirectoryServeMode, ) -> WebService<State>
serve the given embedded directory under the given path with a custom serve move.
pub fn set_dir_embed_with_serve_mode(
&mut self,
prefix: &str,
dir: Dir<'static>,
mode: DirectoryServeMode,
) -> &mut WebService<State>
pub fn set_dir_embed_with_serve_mode( &mut self, prefix: &str, dir: Dir<'static>, mode: DirectoryServeMode, ) -> &mut WebService<State>
serve the given embedded directory under the given path with a custom serve move.
pub fn with_matcher<I, T>(
self,
matcher: HttpMatcher<Body>,
service: I,
) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_matcher<I, T>(
self,
matcher: HttpMatcher<Body>,
service: I,
) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a route to the web service which matches the given matcher, using the given service.
pub fn set_matcher<I, T>(
&mut self,
matcher: HttpMatcher<Body>,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_matcher<I, T>(
&mut self,
matcher: HttpMatcher<Body>,
service: I,
) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
add a route to the web service which matches the given matcher, using the given service.
pub fn with_not_found<I, T>(self, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn with_not_found<I, T>(self, service: I) -> WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
use the given service in case no match could be found.
pub fn set_not_found<I, T>(&mut self, service: I) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
pub fn set_not_found<I, T>(&mut self, service: I) -> &mut WebService<State>where
I: IntoEndpointServiceWithState<T, State>,
<I as IntoEndpointServiceWithState<T, State>>::Service: Service<Request>,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Output: IntoResponse,
<<I as IntoEndpointServiceWithState<T, State>>::Service as Service<Request>>::Error: Into<ErrorResponse>,
use the given service in case no match could be found.
Trait Implementations§
§impl<State> Clone for WebService<State>where
State: Clone,
impl<State> Clone for WebService<State>where
State: Clone,
§fn clone(&self) -> WebService<State>
fn clone(&self) -> WebService<State>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl<State> Debug for WebService<State>where
State: Debug,
impl<State> Debug for WebService<State>where
State: Debug,
§impl Default for WebService
impl Default for WebService
§fn default() -> WebService
fn default() -> WebService
§impl<State> Service<Request> for WebService<State>
impl<State> Service<Request> for WebService<State>
§type Error = Infallible
type Error = Infallible
§async fn serve(
&self,
req: Request,
) -> Result<<WebService<State> as Service<Request>>::Output, <WebService<State> as Service<Request>>::Error>
async fn serve( &self, req: Request, ) -> Result<<WebService<State> as Service<Request>>::Output, <WebService<State> as Service<Request>>::Error>
§fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
Auto Trait Implementations§
impl<State = ()> !RefUnwindSafe for WebService<State>
impl<State = ()> !UnwindSafe for WebService<State>
impl<State> Freeze for WebService<State>where
State: Freeze,
impl<State> Send for WebService<State>where
State: Send,
impl<State> Sync for WebService<State>where
State: Sync,
impl<State> Unpin for WebService<State>where
State: Unpin,
impl<State> UnsafeUnpin for WebService<State>where
State: UnsafeUnpin,
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T, ReqBody, ResBody> GrpcService<ReqBody> for T
impl<T, ReqBody, ResBody> GrpcService<ReqBody> for T
§type ResponseBody = ResBody
type ResponseBody = ResBody
§fn serve(
&self,
request: Request<ReqBody>,
) -> impl Future<Output = Result<Response<<T as GrpcService<ReqBody>>::ResponseBody>, <T as GrpcService<ReqBody>>::Error>> + Send
fn serve( &self, request: Request<ReqBody>, ) -> impl Future<Output = Result<Response<<T as GrpcService<ReqBody>>::ResponseBody>, <T as GrpcService<ReqBody>>::Error>> + Send
§impl<S, Body> HttpClientExt for S
impl<S, Body> HttpClientExt for S
§type ExecuteResponse = Response<Body>
type ExecuteResponse = Response<Body>
execute method.§type ExecuteError = <S as Service<Request>>::Error
type ExecuteError = <S as Service<Request>>::Error
execute method.§fn get(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn get( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
GET request to a URL. Read more§fn post(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn post( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
POST request to a URL. Read more§fn put(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn put( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
PUT request to a URL. Read more§fn patch(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn patch( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
PATCH request to a URL. Read more§fn delete(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn delete( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
DELETE request to a URL. Read more§fn head(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn head( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
HEAD request to a URL. Read more§fn connect(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn connect( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
CONNECT request to a URL. Read more§fn request(
&self,
method: Method,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn request( &self, method: Method, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
§fn build_from_request<RequestBody>(
&self,
request: Request<RequestBody>,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn build_from_request<RequestBody>( &self, request: Request<RequestBody>, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
§fn execute(
&self,
request: Request,
) -> impl Future<Output = Result<<S as HttpClientExt>::ExecuteResponse, <S as HttpClientExt>::ExecuteError>>
fn execute( &self, request: Request, ) -> impl Future<Output = Result<<S as HttpClientExt>::ExecuteResponse, <S as HttpClientExt>::ExecuteError>>
Request. Read more§impl<S, Body> HttpClientWebSocketExt<Body> for S
impl<S, Body> HttpClientWebSocketExt<Body> for S
§fn websocket(
&self,
url: impl IntoUrl,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket( &self, url: impl IntoUrl, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
WebSocketRequestBuilder] to be used to establish a WebSocket connection over http/1.1.§fn websocket_h2(
&self,
url: impl IntoUrl,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket_h2( &self, url: impl IntoUrl, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
WebSocketRequestBuilder to be used to establish a WebSocket connection over h2.§fn websocket_with_request<RequestBody>(
&self,
req: Request<RequestBody>,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket_with_request<RequestBody>( &self, req: Request<RequestBody>, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
WebSocketRequestBuilder starting from the given request. Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<S> IntoEndpointService<(S,)> for S
impl<S> IntoEndpointService<(S,)> for S
type Service = S
§fn into_endpoint_service(self) -> <S as IntoEndpointService<(S,)>>::Service
fn into_endpoint_service(self) -> <S as IntoEndpointService<(S,)>>::Service
rama_core::Service.§impl<S, State> IntoEndpointServiceWithState<(S,), State> for S
impl<S, State> IntoEndpointServiceWithState<(S,), State> for S
type Service = S
§fn into_endpoint_service_with_state(
self,
_state: State,
) -> <S as IntoEndpointServiceWithState<(S,), State>>::Service
fn into_endpoint_service_with_state( self, _state: State, ) -> <S as IntoEndpointServiceWithState<(S,), State>>::Service
rama_core::Service with state.§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer