Skip to main content

SourceOperators

Trait SourceOperators 

Source
pub trait SourceOperators: Clone + Serialize {
    type Expr: HumanizeDisplay + Serialize;

    // Required methods
    fn is_identity(&self) -> bool;
    fn appended_columns(&self) -> usize;
    fn pushdown_info(&self) -> PushdownInfo<Self::Expr>;
    fn fmt_text<M: HumanizerMode, C: AsMut<Indent>>(
        humanized: &HumanizedExpr<'_, Self, M>,
        f: &mut Formatter<'_>,
        ctx: &mut C,
    ) -> Result;
}
Expand description

The operators pushed down onto a source import, in either form a DataflowDescription carries them: the MapFilterProject the MIR optimizer rewrites, or the MfpPlan lowering leaves.

Required Associated Types§

Source

type Expr: HumanizeDisplay + Serialize

The scalar expression type of the operators.

Required Methods§

Source

fn is_identity(&self) -> bool

Whether the operators pass rows through unchanged.

Source

fn appended_columns(&self) -> usize

How many columns the map stage appends to the source’s rows.

Source

fn pushdown_info(&self) -> PushdownInfo<Self::Expr>

Which of the operators persist filter pushdown can apply.

Source

fn fmt_text<M: HumanizerMode, C: AsMut<Indent>>( humanized: &HumanizedExpr<'_, Self, M>, f: &mut Formatter<'_>, ctx: &mut C, ) -> Result

Renders the operators, one key=(...) line each.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§