use crate::{corety::AzString, props::basic::parse::strip_quotes};
#[derive(Copy, Clone, PartialEq)]
pub enum CssImageParseError<'a> {
UnclosedQuotes(&'a str),
}
impl_debug_as_display!(CssImageParseError<'a>);
impl_display! {CssImageParseError<'a>, {
UnclosedQuotes(e) => format!("Unclosed quotes: \"{}\"", e),
}}
#[derive(Debug, Clone, PartialEq)]
pub enum CssImageParseErrorOwned {
UnclosedQuotes(String),
}
impl<'a> CssImageParseError<'a> {
pub fn to_contained(&self) -> CssImageParseErrorOwned {
match self {
CssImageParseError::UnclosedQuotes(s) => {
CssImageParseErrorOwned::UnclosedQuotes(s.to_string())
}
}
}
}
impl CssImageParseErrorOwned {
pub fn to_shared<'a>(&'a self) -> CssImageParseError<'a> {
match self {
CssImageParseErrorOwned::UnclosedQuotes(s) => {
CssImageParseError::UnclosedQuotes(s.as_str())
}
}
}
}
pub fn parse_image<'a>(input: &'a str) -> Result<AzString, CssImageParseError<'a>> {
Ok(match strip_quotes(input) {
Ok(stripped) => stripped.0.into(),
Err(_) => input.trim().into(), })
}