unic_locale_impl/parser/
errors.rs1use std::error::Error;
2use std::fmt::{self, Display};
3use unic_langid_impl::parser::ParserError as LangIdParserError;
4
5#[derive(Debug, PartialEq)]
6pub enum ParserError {
7 InvalidLanguage,
8 InvalidSubtag,
9 InvalidExtension,
10 LangIdError(LangIdParserError),
11}
12
13impl From<LangIdParserError> for ParserError {
14 fn from(error: LangIdParserError) -> Self {
15 ParserError::LangIdError(error)
16 }
17}
18
19impl Error for ParserError {}
20
21impl Display for ParserError {
22 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23 let value = match &self {
24 ParserError::InvalidLanguage => "The given language subtag is invalid",
25 ParserError::InvalidSubtag => "Invalid subtag",
26 ParserError::InvalidExtension => "Invalid extension",
27 ParserError::LangIdError(_) => "Language Identifier Parser Error",
28 };
29 f.write_str(value)
30 }
31}