classnames 2.0.0

Library for generating BEM style classnames
Documentation
use crate::classes::{BaseClass};
use ::std::fmt;

pub trait Class : Sized + Clone + PartialEq + fmt::Display {
}

pub fn classname(base: &'static str) -> BaseClass {
    BaseClass::new(base)
}

#[cfg(test)]
mod maybe_attr {
    use super::*;

    #[test]
    fn is_should_set_attr_if_is_set() {
        let class = classname("mr-component").maybe_attr("red", true);
        assert_eq!("mr-component mr-component--red", class.to_string())
    }

    #[test]
    fn is_should_not_set_attr_if_is_set_is_false() {
        let class = classname("mr-component").maybe_attr("red", false);
        assert_eq!("mr-component", class.to_string())
    }

    #[test]
    fn is_should_still_set_more_attr_after_false_maybe_attr() {
        let class = classname("mr-component")
            .maybe_attr("red", false)
            .attr("blue");
        assert_eq!("mr-component mr-component--blue", class.to_string())
    }
}