use askama::Template; use askama_web::WebTemplate; use rustical_store::auth::Principal; use crate::pages::DefaultLayoutData; pub trait Section: Template { fn name() -> &'static str; } #[derive(Template, WebTemplate)] #[template(path = "pages/user.html")] pub struct UserPage { pub user: Principal, pub section: S, } impl DefaultLayoutData for UserPage { fn get_user(&self) -> Option<&Principal> { Some(&self.user) } }