use crate::optimizer::core::pattern::Pattern;
use crate::optimizer::heuristic::graph::{HepGraph, HepNodeId};
use crate::optimizer::OptimizerError;
pub trait Rule {
fn pattern(&self) -> &Pattern;
fn apply(&self, node_id: HepNodeId, graph: &mut HepGraph) -> Result<(), OptimizerError>;
}