use super::*;
#[derive(Clone, Default, Eq, PartialEq, Hash)]
pub struct HyperLink {
pub is_bare: bool,
pub src: String,
pub text: Option<String>,
pub download: Option<String>,
pub target: Option<HyperLinkTarget>,
pub options: Option<CommandOptions>,
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
pub enum HyperLinkTarget {
Blank,
Parent,
This,
Top,
}
impl HyperLink {
#[inline]
pub fn into_node(self, range: MaybeRanged) -> ASTNode {
SmartLink::Normal(box self).into_node(range)
}
#[inline]
pub fn set_text(&mut self, msg: impl Into<String>) {
self.text = Some(msg.into());
}
pub fn parse_options(mut self) -> Self {
let options = match &mut self.options {
None => return self,
Some(s) => s,
};
options.get_string_key("text").map(|f| self.set_text(f));
return self;
}
}