use super::UIWidget; use maud::{Markup, Render, html}; #[allow(non_snake_case)] pub fn Sized(height: u32, width: u32, inner: T) -> SizedWidget { SizedWidget(Box::new(inner), height, width) } pub struct SizedWidget(Box, u32, u32); impl Render for SizedWidget { fn render(&self) -> Markup { self.render_with_class("") } } impl UIWidget for SizedWidget { fn can_inherit(&self) -> bool { true } fn render_with_class(&self, class: &str) -> Markup { if self.0.as_ref().can_inherit() { self.0 .as_ref() .render_with_class(&format!("h-{} w-{} {class}", self.1, self.2)) } else { html! { div class=(format!("h-{} w-{} {class}", self.1, self.2)) { (self.0.as_ref()) } } } } }