conjure_essence_parser/
errors.rs

1pub use conjure_core::error::Error as ConjureParseError;
2use thiserror::Error as ThisError;
3
4#[derive(Debug, ThisError)]
5pub enum EssenceParseError {
6    #[error("Could not parse Essence AST: {0}")]
7    TreeSitterError(String),
8    #[error("Error running conjure pretty: {0}")]
9    ConjurePrettyError(String),
10    #[error("Error running conjure solve: {0}")]
11    ConjureSolveError(String),
12    #[error("Error parsing essence file: {0}")]
13    ParseError(ConjureParseError),
14    #[error("Error parsing Conjure solutions file: {0}")]
15    ConjureSolutionsError(String),
16    #[error("No solutions file for {0}")]
17    ConjureNoSolutionsFile(String),
18}
19
20impl From<ConjureParseError> for EssenceParseError {
21    fn from(e: ConjureParseError) -> Self {
22        EssenceParseError::ParseError(e)
23    }
24}
25
26impl From<&str> for EssenceParseError {
27    fn from(e: &str) -> Self {
28        EssenceParseError::ParseError(ConjureParseError::Parse(e.to_string()))
29    }
30}
31
32impl From<String> for EssenceParseError {
33    fn from(e: String) -> Self {
34        EssenceParseError::ParseError(ConjureParseError::Parse(e))
35    }
36}