use crate::classes::ClassBuilder;
use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Order {
Order1,
Order2,
Order3,
Order4,
Order5,
Order6,
Order7,
Order8,
Order9,
Order10,
Order11,
Order12,
OrderFirst,
OrderLast,
OrderNone,
}
impl fmt::Display for Order {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Order::Order1 => write!(f, "order-1"),
Order::Order2 => write!(f, "order-2"),
Order::Order3 => write!(f, "order-3"),
Order::Order4 => write!(f, "order-4"),
Order::Order5 => write!(f, "order-5"),
Order::Order6 => write!(f, "order-6"),
Order::Order7 => write!(f, "order-7"),
Order::Order8 => write!(f, "order-8"),
Order::Order9 => write!(f, "order-9"),
Order::Order10 => write!(f, "order-10"),
Order::Order11 => write!(f, "order-11"),
Order::Order12 => write!(f, "order-12"),
Order::OrderFirst => write!(f, "order-first"),
Order::OrderLast => write!(f, "order-last"),
Order::OrderNone => write!(f, "order-none"),
}
}
}
pub trait OrderUtilities {
fn order(self, order: Order) -> Self;
}
impl OrderUtilities for ClassBuilder {
fn order(self, order: Order) -> Self {
self.class(order.to_string())
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_order_utilities() {
let classes = ClassBuilder::new().order(Order::Order1).build();
assert!(classes.to_css_classes().contains("order-1"));
}
}