use smol_str::SmolStr; pub use crate::templates::PROFILE as TEMPLATE; pub fn add_to_context(env: &mut minijinja::Environment) { if env.get_template("template.html").is_err() { crate::meta_template::add_to_context(env); } if env.get_template("open_modal.html").is_err() { crate::open_modal::add_to_context(env); } env.add_template("profile.html", TEMPLATE).unwrap(); } pub fn render(env: &minijinja::Environment, data: ProfileData) -> Result { let template = env.get_template("profile.html")?; template.render(data) } #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub struct ProfileUser { pub position: Option, pub last_active: Option, pub image: String, pub name: SmolStr, pub pool: Option, pub is_friend: bool, pub github: Option, pub website: Option, pub discord: Option, /// profile description pub recit: Option, } #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub struct ProfileData { pub user: ProfileUser, }