axum_kit/
general.rs

1use anyhow::Result;
2use axum::Router;
3use serde::Deserialize;
4use std::net::SocketAddr;
5
6#[derive(Debug, Deserialize)]
7pub struct GeneralConfig {
8    pub listen: String,
9}
10
11pub async fn serve(config: &GeneralConfig, router: Router) -> Result<()> {
12    let listener = tokio::net::TcpListener::bind(&config.listen).await?;
13    tracing::debug!("listening on {}", listener.local_addr()?);
14    axum::serve(
15        listener,
16        router.into_make_service_with_connect_info::<SocketAddr>(),
17    )
18    .await?;
19    Ok(())
20}