aboutsummaryrefslogtreecommitdiffstats
path: root/zoned/src/main.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-03-24 19:43:55 -0500
committerToby Vincent <tobyv13@gmail.com>2022-03-24 19:43:55 -0500
commit6d61152a981f6d4568836458d8e566f7b991a9bc (patch)
treed6cc7ea27d86cc735e2c4843bf5189af102da92c /zoned/src/main.rs
parent252f607064e760b274fd1e9e83ea520573b9e2f6 (diff)
refactor: clean up main
Diffstat (limited to 'zoned/src/main.rs')
-rw-r--r--zoned/src/main.rs21
1 files changed, 7 insertions, 14 deletions
diff --git a/zoned/src/main.rs b/zoned/src/main.rs
index f275e7a..8787a4a 100644
--- a/zoned/src/main.rs
+++ b/zoned/src/main.rs
@@ -4,8 +4,7 @@ use figment::{
providers::{Env, Format, Serialized, Toml},
Figment,
};
-use std::{net::SocketAddr, sync::Arc};
-use tracing::info;
+use tracing::{debug_span, info, Instrument};
use zoned::{build_routes, Config, State};
#[tokio::main]
@@ -16,23 +15,17 @@ async fn main() -> Result<(), zoned::Error> {
.merge(Toml::file(Env::var_or("ZONED_CONFIG", "/etc/zoned/Config.toml")).nested())
.merge(Env::prefixed("ZONED_"));
- let config = match Config::try_from(figment) {
- Ok(config) => config,
- Err(err) => return Err(err),
- };
+ let config = Config::try_from(figment)?;
- let addr = SocketAddr::from((config.ip_address, config.port));
-
- let shared_state = match State::try_from(config) {
- Ok(config) => Arc::new(config),
- Err(err) => return Err(err),
- };
+ let shared_state = State::try_from(&config)?.into_arc();
let routes = build_routes().layer(Extension(shared_state));
- info!("listening on {}", addr);
- axum::Server::bind(&addr)
+ info!(ip_address = %config.ip_address, port = %config.port, "Server listening");
+
+ axum::Server::bind(&config.into())
.serve(routes.into_make_service())
+ .instrument(debug_span!("read_task").or_current())
.await
.context("Axum error")
.map_err(zoned::Error::from)