use std::collections::HashMap; use rocket::{*, fairing::AdHoc}; use rocket_dyn_templates::{Template, tera::Value}; use ::serde::Deserialize; use tools::tera::{static_filter, translate_filter}; pub mod routes; pub mod services; pub mod tools; #[derive(Deserialize)] #[serde(crate = "rocket::serde")] pub struct PresentationConfig { static_route: String, } #[derive(Deserialize)] #[serde(crate = "rocket::serde")] pub struct CVBackendConfig { cv_backend_path: String, } pub fn rocket_builder() -> Rocket { let rocket = rocket::build(); //let figment = rocket.figment(); // extract the entire config any `Deserialize` value //let config: PresentationConfig = figment.extract().expect("config"); rocket.attach( Template::try_custom(|engines| { engines.tera.register_filter("static", static_filter); engines.tera.register_filter("translate", translate_filter); Ok(()) }) ).attach( AdHoc::config::() ).attach( AdHoc::config::() ).mount("/", routes![ routes::root::index ]) }