dpscript/error/
mod.rs

1mod compiler;
2mod dep;
3mod lexer;
4mod lowerer;
5mod tokenizer;
6mod validator;
7
8pub use compiler::*;
9pub use dep::*;
10pub use lexer::*;
11pub use lowerer::*;
12pub use tokenizer::*;
13pub use validator::*;
14
15use miette::Diagnostic;
16use thiserror::Error;
17
18#[derive(Debug, Error, Diagnostic)]
19pub enum Error {
20    #[error("An error occured!")]
21    #[diagnostic(code(dpscript::error::basic), url(docsrs))]
22    Basic(#[help] String),
23
24    #[error(transparent)]
25    #[diagnostic(transparent)]
26    Tokenizer(#[from] TokenizerError),
27
28    #[error(transparent)]
29    #[diagnostic(transparent)]
30    UnnamedTokenizer(#[from] UnnamedTokenizerError),
31
32    #[error(transparent)]
33    #[diagnostic(transparent)]
34    Lexer(#[from] LexerError),
35
36    #[error(transparent)]
37    #[diagnostic(transparent)]
38    UnnamedLexer(#[from] UnnamedLexerError),
39
40    #[error(transparent)]
41    #[diagnostic(transparent)]
42    Validator(#[from] ValidatorError),
43
44    #[error(transparent)]
45    #[diagnostic(transparent)]
46    DuoValidator(#[from] DuoValidatorError),
47
48    #[error(transparent)]
49    #[diagnostic(transparent)]
50    UnnamedValidator(#[from] UnnamedValidatorError),
51
52    #[error(transparent)]
53    #[diagnostic(transparent)]
54    UnnamedDuoValidator(#[from] UnnamedDuoValidatorError),
55
56    #[error(transparent)]
57    #[diagnostic(transparent)]
58    UnsourcedValidator(#[from] UnsourcedValidatorError),
59
60    #[error(transparent)]
61    #[diagnostic(transparent)]
62    Lowerer(#[from] LowererError),
63
64    #[error(transparent)]
65    #[diagnostic(transparent)]
66    UnnamedLowerer(#[from] UnnamedLowererError),
67
68    #[error(transparent)]
69    #[diagnostic(transparent)]
70    Compiler(#[from] CompilerError),
71
72    #[error(transparent)]
73    #[diagnostic(transparent)]
74    UnnamedCompiler(#[from] UnnamedCompilerError),
75
76    #[error(transparent)]
77    #[diagnostic(transparent)]
78    UnsourcedCompiler(#[from] UnsourcedCompilerError),
79
80    #[error(transparent)]
81    #[diagnostic(transparent)]
82    Dependency(#[from] DependencyError),
83
84    #[error(transparent)]
85    Io(#[from] std::io::Error),
86
87    #[error(transparent)]
88    Ron(#[from] ron::Error),
89
90    #[error(transparent)]
91    Toml(#[from] toml::de::Error),
92
93    #[error(transparent)]
94    Json5(#[from] json5::Error),
95
96    #[error(transparent)]
97    Json(#[from] serde_json::Error),
98}