1use crate::pest_parser::Rule;
2use crate::validator::ValidationError;
3
4#[derive(Debug, thiserror::Error)]
6pub enum ParserError {
7 #[error("Pest Parser Error: {0}")]
8 Pest(#[from] pest::error::Error<Rule>),
9
10 #[error("No root AST node was found in the source")]
11 RootNode,
12
13 #[error("The Enum name is invalid or is missing")]
14 EnumName,
15
16 #[error("The Schema name is invalid or is missing")]
17 SchemaName,
18
19 #[error("The Schema Field name is invalid or is missing")]
20 FieldName,
21
22 #[error("The Interface name is invalid or is missing")]
23 InterfaceName,
24
25 #[error("The Function name is invalid or is missing")]
26 FunctionName,
27
28 #[error("The Schema Field type is invalid or is missing")]
29 FieldDataType,
30
31 #[error("The DataType declared is invalid")]
32 DataType,
33
34 #[error("The DataType container name is invalid")]
35 DataTypeContainerName,
36
37 #[error("The DataType container inner type is invalid")]
38 DataTypeContainerInnerType,
39
40 #[error("The Function argument is invalid or is missing")]
41 FunctionArgument,
42
43 #[error("The Function Argument type is invalid or is missing")]
44 FunctionArgumentDataType,
45
46 #[error("Validation Error: {0}")]
47 Validation(#[from] ValidationError),
48}