#[derive(Debug, Clone, PartialEq, Eq)]
pub enum HtmlTag {
Tag(&'static str),
TagAndClass {
tag: &'static str,
class: &'static str,
},
TagAndStyle {
tag: &'static str,
style: &'static str,
},
TagAndId {
tag: &'static str,
id: String,
},
}
impl HtmlTag {
#[inline]
pub fn new(tag: &'static str) -> HtmlTag {
HtmlTag::Tag(tag)
}
#[inline]
pub fn with_class(tag: &'static str, class: &'static str) -> HtmlTag {
HtmlTag::TagAndClass { tag, class }
}
#[inline]
pub fn with_style(tag: &'static str, style: &'static str) -> HtmlTag {
HtmlTag::TagAndStyle { tag, style }
}
#[inline]
pub fn with_id(tag: &'static str, id: String) -> HtmlTag {
HtmlTag::TagAndId { tag, id }
}
#[inline]
pub fn tag(&self) -> &'static str {
match self {
HtmlTag::Tag(tag) => tag,
HtmlTag::TagAndClass { tag, .. } => tag,
HtmlTag::TagAndStyle { tag, .. } => tag,
HtmlTag::TagAndId { tag, .. } => tag,
}
}
}