Trait ListenerExt

trait ListenerExt: Listener + Sized

Extensions to Listener.

Provided Methods

fn tap_io<F>(self: Self, tap_fn: F) -> TapIo<Self, F>
where
    F: FnMut(&mut <Self as >::Io) + Send + 'static

Run a mutable closure on every accepted Io.

Example

use axum::{Router, routing::get, serve::ListenerExt};
use tracing::trace;

# async {
let router = Router::new().route("/", get(|| async { "Hello, World!" }));

let listener = tokio::net::TcpListener::bind("0.0.0.0:3000")
    .await
    .unwrap()
    .tap_io(|tcp_stream| {
        if let Err(err) = tcp_stream.set_nodelay(true) {
            trace!("failed to set TCP_NODELAY on incoming connection: {err:#}");
        }
    });
axum::serve(listener, router).await.unwrap();
# };

Implementors