#[derive(Clone)] pub enum Token { Normal(String), Bold(String), Italic(String), Monospace(String), Math(String), InternalLink(String), ExternalLink { label: String, path: String }, } impl AsRef for Token { fn as_ref(&self) -> &str { match self { Token::Normal(text) => text, Token::Bold(text) => text, Token::Italic(text) => text, Token::Monospace(text) => text, Token::Math(text) => text, Token::InternalLink(name) => name, Token::ExternalLink { label, path } => match !label.is_empty() { true => label, false => path, }, } } }