pub struct Server {
pub listener: Listener,
}Expand description
The Server represents an HTTP server that listens for incoming connections.
Fields§
§listener: ListenerListener is responsible for accepting incoming connections.
Implementations§
source§impl Server
impl Server
sourcepub async fn bind(
addr: impl ToSocketAddrs,
certs: &mut dyn BufRead,
key: &mut dyn BufRead
) -> Result<Self, Box<dyn Error + Send + Sync>>
pub async fn bind( addr: impl ToSocketAddrs, certs: &mut dyn BufRead, key: &mut dyn BufRead ) -> Result<Self, Box<dyn Error + Send + Sync>>
Binds the Server to the specified address.
sourcepub async fn serve_with_graceful_shutdown<State, Stream>(
self,
on_accept: impl FnOnce(SocketAddr) -> ControlFlow<(), Option<State>> + Clone + 'static,
on_stream: fn(_: &mut Conn<TlsStream<TcpStream>>, _: State, _: Request, _: Response) -> Stream
) -> impl Future<Output = ()>where
State: Clone + Send + 'static,
Stream: Future + Send + 'static,
pub async fn serve_with_graceful_shutdown<State, Stream>( self, on_accept: impl FnOnce(SocketAddr) -> ControlFlow<(), Option<State>> + Clone + 'static, on_stream: fn(_: &mut Conn<TlsStream<TcpStream>>, _: State, _: Request, _: Response) -> Stream ) -> impl Future<Output = ()>where State: Clone + Send + 'static, Stream: Future + Send + 'static,
Graceful shutdown allow existing connections to complete before shutting down the server. It returns a future that resolves when all existing connections have completed.
sourcepub async fn serve<State, Stream>(
self,
on_accept: impl FnOnce(SocketAddr) -> ControlFlow<(), Option<State>> + Clone + 'static,
on_stream: fn(_: &mut Conn<TlsStream<TcpStream>>, _: State, _: Request, _: Response) -> Stream
)where
State: Clone + Send + 'static,
Stream: Future + Send + 'static,
Stream::Output: Send,
pub async fn serve<State, Stream>( self, on_accept: impl FnOnce(SocketAddr) -> ControlFlow<(), Option<State>> + Clone + 'static, on_stream: fn(_: &mut Conn<TlsStream<TcpStream>>, _: State, _: Request, _: Response) -> Stream )where State: Clone + Send + 'static, Stream: Future + Send + 'static, Stream::Output: Send,
Starts serving incoming connections and handling streams using the provided callbacks.
on_accept
Called once for each accepted connection. This closure that takes a SocketAddr and returns a ControlFlow enum indicating how the server should handle the connection.
The different variants of control-flow are:
ControlFlow::Continue(Some(<State>)): Accepts the HTTP connection with the provided state.ControlFlow::Continue(None): Rejects the HTTP connection.ControlFlow::Break(()): Stopping the server from accepting further connections.
on_stream
Called for each stream within a connection and is responsible for processing the stream.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Server
impl Send for Server
impl Sync for Server
impl Unpin for Server
impl !UnwindSafe for Server
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