Skip to main content

Rule

Trait Rule 

Source
pub trait Rule<T: NodeType, O: Optimizer<T>>:
    'static
    + Send
    + Sync {
    // Required methods
    fn matcher(&self) -> &RuleMatcher<T>;
    fn apply(
        &self,
        optimizer: &O,
        binding: ArcPlanNode<T>,
    ) -> Vec<PlanNodeOrGroup<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, binding: ArcPlanNode<T>, ) -> Vec<PlanNodeOrGroup<T>>

Source

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

Provided Methods§

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§