frequenz_microgrid_formula_engine/
error.rs

1// License: MIT
2// Copyright © 2024 Frequenz Energy-as-a-Service GmbH
3
4use crate::parser::Rule;
5use std::{error::Error, fmt::Display};
6
7#[derive(Debug)]
8pub struct FormulaError(pub String);
9
10impl Display for FormulaError {
11    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
12        write!(f, "{}", self.0)
13    }
14}
15
16impl Error for FormulaError {}
17
18impl From<pest::error::Error<Rule>> for FormulaError {
19    fn from(err: pest::error::Error<Rule>) -> Self {
20        FormulaError(format!("{err}"))
21    }
22}
23
24impl From<std::num::ParseFloatError> for FormulaError {
25    fn from(err: std::num::ParseFloatError) -> Self {
26        FormulaError(format!("{err}"))
27    }
28}