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§
Sourcetype Expr: HumanizeDisplay + Serialize
type Expr: HumanizeDisplay + Serialize
The scalar expression type of the operators.
Required Methods§
Sourcefn is_identity(&self) -> bool
fn is_identity(&self) -> bool
Whether the operators pass rows through unchanged.
Sourcefn appended_columns(&self) -> usize
fn appended_columns(&self) -> usize
How many columns the map stage appends to the source’s rows.
Sourcefn pushdown_info(&self) -> PushdownInfo<Self::Expr>
fn pushdown_info(&self) -> PushdownInfo<Self::Expr>
Which of the operators persist filter pushdown can apply.
Sourcefn fmt_text<M: HumanizerMode, C: AsMut<Indent>>(
humanized: &HumanizedExpr<'_, Self, M>,
f: &mut Formatter<'_>,
ctx: &mut C,
) -> Result
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".