wiktionary_dump_parser/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5#[derive(Debug, Error)]
6pub enum Error {
7    #[error("error sending http request: {0}")]
8    ReqwestError(#[from] reqwest::Error),
9    #[error("regex error: {0}")]
10    RegexError(#[from] regex::Error),
11    #[error("error parsing url: {0}")]
12    UrlParseError(#[from] url::ParseError),
13    #[error("json error: {0}")]
14    SerdeJsonError(#[from] serde_json::Error),
15    #[error("io error: {0}")]
16    IoError(#[from] std::io::Error),
17    #[error("error parsing utf-8: {0}")]
18    FromUtf8Error(#[from] std::string::FromUtf8Error),
19    #[error("error parsing xml: {0}")]
20    QuickXmlError(#[from] quick_xml::Error),
21    #[error("error parsing xml attribute: {0}")]
22    QuickXmlAttributeError(#[from] quick_xml::events::attributes::AttrError),
23    #[error("error parsing page {page_name:?}: {error}")]
24    WikitextParserError {
25        /// The error returned by the parser.
26        error: Box<wikitext_parser::ParserError>,
27        /// The name of the page.
28        page_name: String,
29        /// The page content causing the error.
30        page_content: String,
31    },
32
33    /// The given english language name is unknown.
34    #[error("unknown English language name: {0:?}")]
35    UnknownEnglishLanguageName(String),
36
37    /// The given wiktionary language abbreviation is unknown.
38    #[error("unknown wiktionary language abbreviation: {0}")]
39    UnknownWiktionaryLanguageAbbreviation(String),
40
41    /// An error described by a string instead of a variant.
42    #[error("{0}")]
43    Other(String),
44
45    #[error("error consuming parsed word: {source}")]
46    WordConsumer {
47        source: Box<dyn std::error::Error + Send + Sync>,
48    },
49}