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: HyperLinkTarget,
pub options: Option<CommandArguments>,
}
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
pub enum HyperLinkTarget {
This,
Blank,
Parent,
Top,
}
impl Default for HyperLinkTarget {
fn default() -> Self {
Self::This
}
}
impl HyperLink {
#[inline]
pub fn set_text(&mut self, msg: impl Into<String>) -> &mut Self {
self.text = Some(msg.into());
self
}
pub fn parse_options(mut self) -> Self {
let args = match &mut self.options {
None => return self,
Some(s) => s,
};
args.optional.get_string("text").map(|f| self.set_text(f));
return self;
}
}