#[derive(Clone)] pub enum Token { Normal(String), Bold(String), Italic(String), Monospace(String), Math(String), InternalLink { label: String, path: 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 { label, path } => match label.is_empty() { true => path, false => label, }, Token::ExternalLink { label, path } => match label.is_empty() { true => path, false => label, }, } } }