use axum::{ body::Body, http::{Request, Response}, middleware::{self, Next}, routing::get, Router, }; use std::time::Instant; async fn track_time(req: Request, next: Next) -> Response { let start = Instant::now(); let response = next.run(req).await; let latency = start.elapsed().as_micros(); // Microseconds for precision let mut response = response; response.headers_mut().insert( "x-process-time-us", latency.to_string().parse().unwrap(), ); response } #[tokio::main] async fn main() { let app = Router::new() .route("/", get(|| async { "Fastest code on HF" })) .layer(middleware::from_fn(track_time)); // Wrap everything in the timer let listener = tokio::net::TcpListener::bind("0.0.0.0:7860").await.unwrap(); axum::serve(listener, app).await.unwrap(); }