use super::Symbol;
use crate::actions::Action;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Symbols {}
impl Action for Symbols {
fn act(&self, input: &str) -> String {
input
.chars()
.map(|c| match Symbol::try_from(c) {
Ok(s) => match s {
Symbol::EmDash => "---",
Symbol::EnDash => "--",
Symbol::ShortRightArrow => "->",
Symbol::ShortLeftArrow => "<-",
Symbol::LongRightArrow => "-->",
Symbol::LongLeftArrow => "<--",
Symbol::LeftRightArrow => "<->",
Symbol::RightDoubleArrow => "=>",
Symbol::NotEqual => "!=",
Symbol::LessThanOrEqual => "<=",
Symbol::GreaterThanOrEqual => ">=",
}
.into(),
Err(()) => c.to_string(),
})
.collect()
}
}