sic_parser/
errors.rs

1use crate::named_value::NamedValueError;
2use sic_image_engine::errors::SicImageEngineError;
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum SicParserError {
7    #[error("expected named value with signature '{0}', but got no more inputs")]
8    ExpectedNamedValue(String),
9
10    #[error("expected value with of type '{0}', but got no more inputs")]
11    ExpectedValue(String),
12
13    #[error("unable to parse filter type: {0}")]
14    FilterTypeError(SicImageEngineError),
15
16    #[error("unable to parse named value: {0}")]
17    NamedValueParsingError(NamedValueError),
18
19    #[error("string value expected an inner value, but none was found")]
20    NoInnerString,
21
22    #[error("{0}")]
23    OperationError(OperationParamError),
24
25    #[error("unable to parse script: {0}")]
26    PestGrammarError(String),
27
28    #[error("parsing failed: operation doesn't exist")]
29    UnknownOperationError,
30
31    #[error("unable to parse value '{0}'")]
32    ValueParsingError(String),
33
34    #[error("unable to parse value '{0}', error:\n\t{1}")]
35    ValueParsingErrorWithInnerError(String, Box<dyn std::error::Error + Send + Sync>),
36}
37
38#[derive(Debug, Error)]
39pub enum OperationParamError {
40    #[error(
41        "Unable to parse `set` environment command. Error: expected a single `set` inner element."
42    )]
43    SetEnvironment,
44
45    #[error("Unable to parse `set` environment command. Error on element: {0}")]
46    SetEnvironmentElement(String),
47
48    #[error("Unable to parse operation argument(s): {0}")]
49    PestArgError(String),
50
51    #[error(
52        "Unable to parse `del` environment command. Error: expected a single `del` inner element."
53    )]
54    UnsetEnvironment,
55
56    #[error("Unable to parse `del` environment command. Error on element: {0}")]
57    UnsetEnvironmentElement(String),
58}