Skip to main content

package_parser/
error.rs

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}