From 957e15d0d887418ba817d4f53e7de07aae5467e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kha=C3=AFs=20COLIN?= Date: Sun, 19 Oct 2025 17:32:25 +0200 Subject: [PATCH] remove some unwraps --- foods.db-journal | Bin 0 -> 4616 bytes src/main.rs | 26 +++++++++++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 foods.db-journal diff --git a/foods.db-journal b/foods.db-journal new file mode 100644 index 0000000000000000000000000000000000000000..466cfbb5c269a3f578aebe99988da445ba8801da GIT binary patch literal 4616 zcmZQT0*iUyN-{7oFf%YPF)%O)Ajym}hj9on^YU6U@bUa(;WOsV=3m9%#~;Ek$akG@ z7GE0AKR#C8m%O`q7Y<|pk9uu11V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(q=bN_B^L*S zXfPuqqqLzyh>u%pNr{4nQ)x*_YLSkDUuki15|n*-T8=_$NwS`%1~Zd#nptW}atfag zgORi=6DOy%p}vWNb7?_9enE16QJ#)MQGSMkhOJ?8X@P=!YDrOMN~$Kq31u@=6DAG@ zkPZ%Fb);CNSR_jDaWF^hN+fh}uGALVTi1le0n2 z_Q=o6OxIEHO)Sby%}Gp26@jXj;^APB6a}j`HBiXS2~JEa34qF}a&s_9t21$eTxJCF zi(5`=W^rSI05xC|49aR(O^bHMh*sPTX3N1gH?lknVOlBs_$2tlA4pJqmZ7O zou8ahlETcSYzFp(5hn+Ov?C)U$O3R+`DW%MXXq$+<)>$q7M18I1ePWiWrKs*h8b#` zH3tWScqAhzfI&|3%S_HFQ7A4syrd{QH6t;nBr`p=SiwCt_wb(LRJfH!%4r74X%?v# z>>Lc@fsBlt(uPE6F3Qi4WQOW=WaD5EPh|v!1xRNwb_*3W!b^*)z@GI@%q#}GTr&V_ zgas?aa!`~xmlinXB$kw6o^JHnB`I|91P;3;BW$2?w?d# t5&)BvW#(WIm4`UY)yF3_Gp{%?H#JWV8pI3?48|nJN{U4y!(!gIRRF2~<5K_t literal 0 HcmV?d00001 diff --git a/src/main.rs b/src/main.rs index 8fcea50..b93ad4d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,7 +11,7 @@ use axum::{ use rusqlite::Connection; use tower_http::trace::TraceLayer; use tower_request_id::{RequestId, RequestIdLayer}; -use tracing::{debug, info, info_span}; +use tracing::{debug, error, info, info_span}; use tracing_subscriber::{layer::SubscriberExt as _, util::SubscriberInitExt as _}; #[derive(Template)] @@ -40,7 +40,7 @@ struct Food { } #[tokio::main] -async fn main() { +async fn main() -> Result<(), std::io::Error> { tracing_subscriber::registry() .with( tracing_subscriber::EnvFilter::try_from_default_env().unwrap_or_else(|_| { @@ -57,8 +57,12 @@ async fn main() { .init(); let db_connecion_str = "./foods.db".to_string(); - let conn = Connection::open(db_connecion_str).unwrap(); - conn.execute(include_str!("create_tables.sql"), ()).unwrap(); + debug!(db_connecion_str, "opening database"); + let conn = Connection::open(db_connecion_str).expect("failed to open database"); + if let Err(e) = conn.execute(include_str!("create_tables.sql"), ()) { + error!(?e, "failed to create tables"); + panic!("failed to create tables: {:#?}", e); + } let conn = Arc::new(Mutex::new(conn)); let app = Router::new() @@ -88,9 +92,17 @@ async fn main() { .layer(RequestIdLayer) .with_state(conn); - let listener = tokio::net::TcpListener::bind("0.0.0.0:3001").await.unwrap(); - info!("listening on {}", listener.local_addr().unwrap()); - axum::serve(listener, app).await.unwrap(); + let address = "0.0.0.0:3001"; + let listener = tokio::net::TcpListener::bind(address) + .await + .expect("failed to bind to address"); + info!( + "listening on {}", + listener + .local_addr() + .expect("failed to get local listening address") + ); + axum::serve(listener, app).await } fn get_foods(conn: &Arc>) -> Vec {