#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum ListSeparator {
Space,
Slash,
SlashNoSpace,
Comma,
}
impl ListSeparator {
pub fn sep(&self, compressed: bool) -> &'static str {
match self {
Self::Comma if compressed => ",",
Self::Comma => ", ",
Self::Slash if compressed => "/",
Self::SlashNoSpace => "/",
Self::Slash => " / ",
Self::Space => " ",
}
}
pub fn is_slash(&self) -> bool {
matches!(self, Self::Slash | Self::SlashNoSpace)
}
}
impl Default for ListSeparator {
fn default() -> Self {
Self::Space
}
}
#[test]
fn check_sep_order() {
assert!(ListSeparator::Comma > ListSeparator::Space);
assert!(ListSeparator::Slash > ListSeparator::Space);
}