use self::layout::Layout; use markup::Render; use rocket::{ http::ContentType, response::{self, Responder}, Request, Response, }; use std::io::Cursor; pub mod error; pub mod home; pub mod layout; pub mod node; pub mod style; pub mod player; pub mod account; pub struct HtmlTemplate(pub String, pub T); impl<'r, T: Render> Responder<'r, 'static> for HtmlTemplate { fn respond_to(self, _: &'r Request<'_>) -> response::Result<'static> { let mut out = String::new(); Layout { title: self.0, main: self.1, } .render(&mut out) .unwrap(); Response::build() .header(ContentType::HTML) .streamed_body(Cursor::new(out)) .ok() } }