use tokio::net::TcpListener; use tracing_subscriber::{layer::SubscriberExt, registry, util::SubscriberInitExt, EnvFilter}; use unnamed_server::state::AppState; use crate::config::Config; mod config; #[tokio::main] async fn main() -> Result<(), main_error::MainError> { registry() .with(EnvFilter::from_default_env()) .with(tracing_subscriber::fmt::layer()) .init(); let config = Config::builder().file()?.env().build()?; let listener = TcpListener::bind(config.listen_addr).await?; let app_state = AppState::new(config.database_url).await?; let router = unnamed_server::router(app_state); tracing::info!("Listening on http://{}", listener.local_addr()?); axum::serve(listener, router).await.map_err(From::from) }