1use thiserror::Error;
2
3#[derive(Debug, Error, PartialEq, Eq, Clone)]
4pub enum Error {
6 #[error("failed to parse the rest of input: ...'{0}'")]
7 Parse(String),
9
10 #[error("invalid date: {0}")]
11 InvalidDate(String),
13
14 #[error("query cannot start with 'not'; add any other queries before '{0}'")]
15 NotAtFirst(String),
17
18 #[error("unknown browser: '{0}'")]
19 BrowserNotFound(String),
21
22 #[error("unknown Electron version: {0}")]
23 UnknownElectronVersion(String),
25
26 #[error("unknown Node.js version: {0}")]
27 UnknownNodejsVersion(String),
29
30 #[error("unknown version '{1}' of browser '{0}'")]
31 UnknownBrowserVersion(String, String),
33
34 #[error("current environment for querying `current node` is not supported")]
35 UnsupportedCurrentNode,
39
40 #[error("unknown browser feature: '{0}'")]
41 UnknownBrowserFeature(String),
43
44 #[error("unknown region: '{0}'")]
45 UnknownRegion(String),
47
48 #[error("unknown browser query: '{0}'")]
49 UnknownQuery(String),
51
52 #[error("year overflow")]
53 YearOverflow,
55}
56
57impl<'a> From<&'a str> for Error {
58 fn from(input: &'a str) -> Self {
59 Self::Parse(input.to_owned())
60 }
61}