1use nom::error::VerboseError;
2use nom::IResult;
3use python_pkginfo::Error as PythonPkgError;
4use quick_xml::de::DeError;
5use serde_json::Error as JsonError;
6use serde_yaml::Error as YamlError;
7use thiserror::Error;
8
9pub type NomResult<T, U> = IResult<T, U, VerboseError<T>>;
10
11#[derive(Debug, Error)]
12pub enum SourcePkgError {
13 #[error("I/O error: {0}")]
14 Io(#[from] std::io::Error),
15
16 #[error("JSON error: {0}")]
17 JsonParse(#[from] JsonError),
18
19 #[error("Toml deserialize error: {0}")]
20 TomlDeserialize(#[from] toml::de::Error),
21
22 #[error("Cargo lock error: {0}")]
23 CargoLockParse(#[from] cargo_lock::Error),
24
25 #[error("Opam error: {0}")]
26 OpamParse(#[from] opam_file_rs::OpamFileError),
27
28 #[error("XML error: {0}")]
29 XmlParse(#[from] DeError),
30
31 #[error("XML error: {0}")]
32 XmlError(#[from] quick_xml::Error),
33
34 #[error("YAML error: {0}")]
35 YamlParse(#[from] YamlError),
36
37 #[error("UTF-8 decode error: {0}")]
38 Utf8Error(#[from] std::string::FromUtf8Error),
39
40 #[error("Yarn lock error: {0}")]
41 YarnParse(#[from] yarn_lock_parser::YarnLockError),
42
43 #[error("Python pkginfo error: {0}")]
44 PythonPkgParse(#[from] PythonPkgError),
45
46 #[error("Invalid UTF-8: {0}")]
47 Utf8Error2(#[from] std::str::Utf8Error),
48
49 #[error("{0}")]
50 GenericsError(&'static str),
51
52 #[error("{0}")]
53 GenericsError2(String),
54
55 #[error("{0}")]
56 GenericsError3(#[from] anyhow::Error),
57
58 #[error("Not supported")]
59 NotSupported,
60
61 #[error("Skipped")]
62 Skipped,
63}