1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum Error {
5 #[error("i18n: {0}")]
6 Custom(String),
7
8 #[error("i18n: missing translation for language code '{0}'")]
9 MissingTranslation(String),
10
11 #[error("i18n: missing language info for language code '{0}'")]
12 MissingLanguage(String),
13
14 #[error("i18n: enabling invalid language code '{0}'")]
15 EnablingUnknownLanguageCode(String),
16
17 #[error("i18n: received invalid language code '{0}'")]
18 UnknownLanguageCode(String),
19
20 #[error("i18n: unable to get storage path")]
21 StoragePath,
22
23 #[error("i18n: serde json failure: {0}")]
24 JSON(#[from] serde_json::Error),
25
26 #[error("i18n: io failure: {0}")]
27 Io(#[from] std::io::Error),
28}
29
30impl Error {
31 pub fn custom<T: ToString>(s: T) -> Self {
32 Error::Custom(s.to_string())
33 }
34}