pub struct EffectfulLayeredServer<A: ApiSpec, Provided, S> { /* private fields */ }Expand description
An effectful server with Tower middleware layers applied.
Created by EffectfulServer::layer. Supports further .provide(),
.layer(), and .serve() calls.
Implementations§
Source§impl<A: ApiSpec, P, S> EffectfulLayeredServer<A, P, S>
impl<A: ApiSpec, P, S> EffectfulLayeredServer<A, P, S>
Sourcepub fn provide<E: Effect>(self) -> EffectfulLayeredServer<A, ECons<E, P>, S>
pub fn provide<E: Effect>(self) -> EffectfulLayeredServer<A, ECons<E, P>, S>
Declare that a middleware effect has been provided.
Sourcepub fn with_state<T: Clone + Send + Sync + 'static>(self, state: T) -> Self
pub fn with_state<T: Clone + Send + Sync + 'static>(self, state: T) -> Self
Add shared state accessible via State<T> extractors.
Sourcepub fn max_body_size(self, max: usize) -> Self
pub fn max_body_size(self, max: usize) -> Self
Set the maximum request body size.
Source§impl<A: ApiSpec, P, S> EffectfulLayeredServer<A, P, S>
impl<A: ApiSpec, P, S> EffectfulLayeredServer<A, P, S>
Sourcepub fn layer<L>(self, layer: L) -> EffectfulLayeredServer<A, P, L::Service>
pub fn layer<L>(self, layer: L) -> EffectfulLayeredServer<A, P, L::Service>
Apply another Tower middleware layer.
Source§impl<A: ApiSpec, P, S> EffectfulLayeredServer<A, P, S>
impl<A: ApiSpec, P, S> EffectfulLayeredServer<A, P, S>
Sourcepub fn ready<Idx>(self) -> LayeredServer<S>where
A: AllProvided<P, Idx>,
pub fn ready<Idx>(self) -> LayeredServer<S>where
A: AllProvided<P, Idx>,
Finalize into a LayeredServer.
Only compiles if all required effects have been provided.
Sourcepub async fn serve<Idx>(
self,
addr: SocketAddr,
) -> Result<(), Box<dyn Error + Send + Sync>>where
A: AllProvided<P, Idx>,
pub async fn serve<Idx>(
self,
addr: SocketAddr,
) -> Result<(), Box<dyn Error + Send + Sync>>where
A: AllProvided<P, Idx>,
Start serving HTTP requests.
Only compiles if all required effects have been provided.
Sourcepub async fn serve_with_shutdown<Idx>(
self,
listener: TcpListener,
shutdown: impl Future<Output = ()> + Send,
) -> Result<(), Box<dyn Error + Send + Sync>>where
A: AllProvided<P, Idx>,
pub async fn serve_with_shutdown<Idx>(
self,
listener: TcpListener,
shutdown: impl Future<Output = ()> + Send,
) -> Result<(), Box<dyn Error + Send + Sync>>where
A: AllProvided<P, Idx>,
Start serving with graceful shutdown.
Only compiles if all required effects have been provided.
Auto Trait Implementations§
impl<A, Provided, S> Freeze for EffectfulLayeredServer<A, Provided, S>where
S: Freeze,
impl<A, Provided, S> !RefUnwindSafe for EffectfulLayeredServer<A, Provided, S>
impl<A, Provided, S> Send for EffectfulLayeredServer<A, Provided, S>
impl<A, Provided, S> Sync for EffectfulLayeredServer<A, Provided, S>
impl<A, Provided, S> Unpin for EffectfulLayeredServer<A, Provided, S>
impl<A, Provided, S> UnsafeUnpin for EffectfulLayeredServer<A, Provided, S>where
S: UnsafeUnpin,
impl<A, Provided, S> !UnwindSafe for EffectfulLayeredServer<A, Provided, S>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more