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}