optd_core::rules

Trait Rule

Source
pub trait Rule<T: RelNodeTyp, O: Optimizer<T>>:
    'static
    + Send
    + Sync {
    // Required methods
    fn matcher(&self) -> &RuleMatcher<T>;
    fn apply(
        &self,
        optimizer: &O,
        input: HashMap<usize, RelNode<T>>,
    ) -> Vec<RelNode<T>>;
    fn name(&self) -> &'static str;

    // Provided method
    fn is_impl_rule(&self) -> bool { ... }
}

Required Methods§

Source

fn matcher(&self) -> &RuleMatcher<T>

Source

fn apply( &self, optimizer: &O, input: HashMap<usize, RelNode<T>>, ) -> Vec<RelNode<T>>

Source

fn name(&self) -> &'static str

Provided Methods§

Implementors§