pub trait BottomUpTransform<T = Timestamp> {
    type Info: BoundedLattice + Clone;
    type Interpreter<'a>: Interpreter<T, Domain = Self::Info>;

    // Required methods
    fn name(&self) -> &'static str;
    fn interpreter(config: &TransformConfig) -> Self::Interpreter<'_>;
    fn action(
        plan: &mut Plan<T>,
        plan_info: &Self::Info,
        input_infos: &[Self::Info]
    );
}

Required Associated Types§

source

type Info: BoundedLattice + Clone

A type representing analysis information to be associated with each sub-term and exposed to the transformation action callback.

source

type Interpreter<'a>: Interpreter<T, Domain = Self::Info>

A type responsible for synthesizing the Self::Info associated with each sub-term.

Required Methods§

source

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

The name for this transform.

source

fn interpreter(config: &TransformConfig) -> Self::Interpreter<'_>

Derive a Self::Interpreter instance from the TransformConfig.

source

fn action( plan: &mut Plan<T>, plan_info: &Self::Info, input_infos: &[Self::Info] )

A callback for manipulating the root of the given Plan using the Self::Info derived for itself and its children.

Implementors§