use ec4rs::{
PropertyKey,
property::{self, SpellingLanguage},
};
use crate::errors;
use super::PropertyConfigHandler;
pub struct SpellingLanguageHandler {}
impl PropertyConfigHandler for SpellingLanguageHandler {
fn check(&self, properties: &ec4rs::Properties) -> anyhow::Result<()> {
match properties.get::<property::SpellingLanguage>() {
Ok(SpellingLanguage::Value(language_tag)) => {
if language_tag.as_str() == "unset" {
Ok(())
} else {
language_tag.validate().map_err(|validation_error| {
errors::SpellingLanguageSnafu { validation_error }
.build()
.into()
})
}
}
Err(raw_value) => {
if raw_value.to_lowercase().into_str() == "unset" {
Ok(())
} else {
Err(errors::ParsingSnafu {
value: raw_value.into_str(),
property_name: SpellingLanguage::key(),
}
.build()
.into())
}
}
}
}
}