hyaenidae/toolkit/src/card.rs
2020-12-15 20:40:41 -06:00

37 lines
824 B
Rust

#[derive(Debug, Default)]
pub struct Card {
pub(crate) full_width: bool,
pub(crate) classes: Vec<String>,
}
impl Card {
pub fn new() -> Self {
Default::default()
}
pub fn full_width(&mut self) -> &mut Self {
self.full_width = true;
self
}
pub fn centered(&mut self) -> &mut Self {
self.classes.push("toolkit-centered".to_owned());
self
}
pub fn classes(&mut self, classes: &[&str]) -> &mut Self {
self.classes = classes.into_iter().map(|s| s.to_string()).collect();
self
}
pub(crate) fn class_string(&self) -> String {
let classes = self.classes.join(" ");
if self.full_width {
return classes + " toolkit-card toolkit-card__full-width";
}
classes + " toolkit-card"
}
}