use super::{pseudo_classes::PseudoClass, selector_impl::InlinerSelectors, ParseError};
use cssparser::CowRcStr;
use selectors::{parser::SelectorParseErrorKind, Parser};
pub(crate) struct SelectorParser;
impl<'i> Parser<'i> for SelectorParser {
type Impl = InlinerSelectors;
type Error = SelectorParseErrorKind;
#[allow(clippy::enum_glob_use)]
fn parse_non_ts_pseudo_class(&self, name: CowRcStr<'i>) -> Result<PseudoClass, ParseError> {
use self::PseudoClass::*;
if name.eq_ignore_ascii_case("any-link") {
Ok(AnyLink)
} else if name.eq_ignore_ascii_case("link") {
Ok(Link)
} else if name.eq_ignore_ascii_case("visited") {
Ok(Visited)
} else if name.eq_ignore_ascii_case("active") {
Ok(Active)
} else if name.eq_ignore_ascii_case("focus") {
Ok(Focus)
} else if name.eq_ignore_ascii_case("hover") {
Ok(Hover)
} else if name.eq_ignore_ascii_case("enabled") {
Ok(Enabled)
} else if name.eq_ignore_ascii_case("disabled") {
Ok(Disabled)
} else if name.eq_ignore_ascii_case("checked") {
Ok(Checked)
} else if name.eq_ignore_ascii_case("indeterminate") {
Ok(Indeterminate)
} else {
Err(ParseError::custom(
SelectorParseErrorKind::UnsupportedPseudoClassOrElement,
))
}
}
}