diff --git a/src/main.rs b/src/main.rs index fbf09b4..55be2ce 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,7 @@ use rocket_dyn_templates::Template; use rand::distributions::Uniform; use rand::Rng; +use std::collections::HashMap; use std::ops::Deref; use std::sync::Arc; @@ -33,6 +34,19 @@ impl ErrorEmpty for Result { } } +#[derive(Debug, Responder)] +enum WebError { + #[response(status = 404)] + NotFound(Template), +} + +impl WebError { + fn not_found() -> Self { + let context: HashMap = HashMap::new(); + WebError::NotFound(Template::render("404", context)) + } +} + #[derive(Clone)] struct ArcTemplateData { value: Arc, @@ -85,9 +99,9 @@ async fn show_question_details( data: &AppState, cache: &TemplateCache, id: usize, -) -> Template { +) -> Option