use onnx_runtime_ir::{GraphError, IrError};
pub type Result<T> = std::result::Result<T, OptimizerError>;
#[derive(Debug, thiserror::Error)]
pub enum OptimizerError {
#[error("graph invariant violated after pass '{pass}': {errors:?}")]
PostconditionFailed {
pass: String,
errors: Vec<GraphError>,
},
#[error(transparent)]
Ir(#[from] IrError),
#[error("fusion '{0}' could not be applied")]
Fusion(String),
}
impl From<Vec<GraphError>> for OptimizerError {
fn from(errors: Vec<GraphError>) -> Self {
OptimizerError::Ir(IrError::GraphInvalid(errors))
}
}