gutenberg_rs/
error.rs

1use indicatif::style::TemplateError;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum Error {
6    #[error("Rdf parsing error: `{0}`")]
7    InvalidRdf(String),
8    #[error("Invalid result: `{0}`")]
9    InvalidResult(String),
10    #[error("Settings error: `{0}`")]
11    InvalidSettingsField(String),
12    #[error("Io Error: `{0}`")]
13    InvalidIO(String),
14    #[error("Request error: `{0}`")]
15    InvalidRequest(String),
16    #[error("Progress bar template error: `{0}`")]
17    InvalidProgressBarTemplate(String),
18    #[error("SQLITE error: `{0}`")]
19    InvalidSQLITE(String),
20    #[error("UTF8 error: `{0}`")]
21    InvalidUTF8String(String),
22    #[error("Invalid Cache: `{0}`")]
23    InvalidCacheLocation(String),
24    #[error("Invalid URl: `{0}`")]
25    InvalidUrl(String),
26    #[error("Invalid Query: `{0}`")]
27    InvalidQuery(String),
28}
29
30impl std::convert::From<url::ParseError> for Error {
31    fn from(err: url::ParseError) -> Self {
32        Error::InvalidUrl(err.to_string())
33    }
34}
35
36impl std::convert::From<reqwest::Error> for Error {
37    fn from(err: reqwest::Error) -> Self {
38        Error::InvalidRequest(err.to_string())
39    }
40}
41
42impl std::convert::From<std::io::Error> for Error {
43    fn from(err: std::io::Error) -> Self {
44        Error::InvalidIO(err.to_string())
45    }
46}
47
48impl std::convert::From<TemplateError> for Error {
49    fn from(err: TemplateError) -> Self {
50        Error::InvalidProgressBarTemplate(err.to_string())
51    }
52}
53
54impl std::convert::From<rusqlite::Error> for Error {
55    fn from(err: rusqlite::Error) -> Self {
56        Error::InvalidSQLITE(err.to_string())
57    }
58}
59
60impl std::convert::From<quick_xml::Error> for Error {
61    fn from(err: quick_xml::Error) -> Self {
62        Error::InvalidRdf(format!("fastxml error: {}", err.to_string()).to_string())
63    }
64}
65
66impl std::convert::From<std::str::Utf8Error> for Error {
67    fn from(err: std::str::Utf8Error) -> Self {
68        Error::InvalidUTF8String(err.to_string())
69    }
70}
71
72impl std::convert::From<quick_xml::events::attributes::AttrError> for Error {
73    fn from(err: quick_xml::events::attributes::AttrError) -> Self {
74        Error::InvalidRdf(format!("fastxml attribute error: {}", err.to_string()).to_string())
75    }
76}
77
78/*impl std::convert::From<std::num::ParseIntError> for Error {
79    fn from(err: std::num::ParseIntError) -> Self {
80        Error::InvalidRdf(err.to_string())
81    }
82}*/