#[derive(Debug)]
pub enum CodeGenError {
Logic(String),
Format(std::fmt::Error),
}
impl std::fmt::Display for CodeGenError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
CodeGenError::Logic(s) => write!(f, "{}", s),
CodeGenError::Format(e) => write!(f, "IR generation error: {}", e),
}
}
}
impl std::error::Error for CodeGenError {}
impl From<String> for CodeGenError {
fn from(s: String) -> Self {
CodeGenError::Logic(s)
}
}
impl From<std::fmt::Error> for CodeGenError {
fn from(e: std::fmt::Error) -> Self {
CodeGenError::Format(e)
}
}