Add a panic handler and remove unwrap calls from app instantiation
This commit is contained in:
parent
efb841f026
commit
d73166ef04
1 changed files with 26 additions and 2 deletions
28
src/main.rs
28
src/main.rs
|
|
@ -12,10 +12,25 @@ mod formats;
|
||||||
|
|
||||||
use formats::*;
|
use formats::*;
|
||||||
use types::*;
|
use types::*;
|
||||||
|
static ONSET: std::sync::LazyLock<std::time::Instant> =
|
||||||
|
std::sync::LazyLock::new(std::time::Instant::now);
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
|
|
||||||
|
std::panic::set_hook(Box::new(|info| {
|
||||||
|
|
||||||
|
let payload = info.payload_as_str().unwrap_or(
|
||||||
|
"No string payload. Is edition > 2021?");
|
||||||
|
|
||||||
|
let location = info.location().map_or_else(
|
||||||
|
|| "location unavailable".to_string(),
|
||||||
|
|s| format!("{}:{}:{}", s.file(), s.line(), s.column()));
|
||||||
|
|
||||||
|
eprintln!(" P! [{:?}] {}: {}", ONSET.elapsed(), location, payload);
|
||||||
|
|
||||||
|
}));
|
||||||
|
|
||||||
let app = Router::new()
|
let app = Router::new()
|
||||||
.route("/", get(index).post(query))
|
.route("/", get(index).post(query))
|
||||||
.route("/graph/toml", get(toml_graph))
|
.route("/graph/toml", get(toml_graph))
|
||||||
|
|
@ -26,8 +41,17 @@ async fn main() {
|
||||||
.fallback(not_found)
|
.fallback(not_found)
|
||||||
;
|
;
|
||||||
|
|
||||||
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
|
if let Ok(listener) = tokio::net::TcpListener::bind("0.0.0.0:3000").await
|
||||||
axum::serve(listener, app).await.unwrap();
|
.or(Err("Failed to instantiate Tokio listener")) {
|
||||||
|
|
||||||
|
match axum::serve(listener, app).await {
|
||||||
|
Ok(()) => (),
|
||||||
|
Err(e) => {
|
||||||
|
eprintln!("Failed to serve application with axum::serve: {e:#?}");
|
||||||
|
std::process::exit(1);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn make_body(
|
fn make_body(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue