template_cli/
error.rs

1use std::fmt::{Debug, Display, Formatter};
2
3#[derive(Debug)]
4pub enum TemplateRenderError {
5    UnknownFunctionError(String),
6    TypeError(String),
7    ArgumentValueError(String),
8    LiteralParseError(String),
9    RequiredArgumentMissing(String),
10    InvalidRegexError(String),
11    JsonParseError(String),
12    JsonSerializationError,
13    AssertionError(String),
14}
15
16impl Display for TemplateRenderError {
17    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
18        match self {
19            TemplateRenderError::UnknownFunctionError(string) => f.write_str(format!("Unknown function '{}'", string.as_str()).as_str())?,
20            TemplateRenderError::TypeError(string) => f.write_str(format!("Invalid type '{}'", string.as_str()).as_str())?,
21            TemplateRenderError::ArgumentValueError(string) => f.write_str(format!("Invalid arguments: {}", string.as_str()).as_str())?,
22            TemplateRenderError::LiteralParseError(string) => f.write_str(format!("Could not parse literal '{}'", string.as_str()).as_str())?,
23            TemplateRenderError::RequiredArgumentMissing(string) => f.write_str(format!("Required argument is missing for function {}", string.as_str()).as_str())?,
24            TemplateRenderError::InvalidRegexError(regex) => f.write_str(format!("Invalid regular expression given: '{}'", regex.as_str()).as_str())?,
25            TemplateRenderError::JsonParseError(json) => f.write_str(format!("Could not parse JSON: '{}'", json.as_str()).as_str())?,
26            TemplateRenderError::JsonSerializationError => f.write_str(format!("Could not serialize JSON").as_str())?,
27            TemplateRenderError::AssertionError(message) => f.write_str(format!("Assertion failed: {}", message.as_str()).as_str())?,
28        }
29        return Ok(());
30    }
31}