use secrecy::ExposeSecret; use sqlx::PgPool; use tokio::net::TcpListener; use zero2prod::{configuration::get_configuration, startup::run, telemetry::init_subscriber}; #[tokio::main] async fn main() { init_subscriber(std::io::stdout); let configuration = get_configuration().expect("Failed to read configuration"); let listener = TcpListener::bind(format!("127.0.0.1:{}", configuration.application_port)) .await .unwrap(); tracing::debug!("listening on {}", listener.local_addr().unwrap()); let connection_pool = PgPool::connect(configuration.database.connection_string().expose_secret()) .await .unwrap(); run(listener, connection_pool).await }