pub trait DataFrameBackend: Send + Sync {
Show 19 methods
// Required methods
fn as_any(&self) -> &(dyn Any + Send + Sync);
fn filter(
&self,
condition: &ExprIr,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn select(
&self,
exprs: &[ExprIr],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn select_columns(
&self,
columns: &[&str],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn with_column(
&self,
name: &str,
expr: &ExprIr,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn join(
&self,
other: &dyn DataFrameBackend,
on: &[&str],
how: JoinType,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn group_by(
&self,
column_names: &[&str],
) -> Result<Box<dyn GroupedDataBackend>, EngineError>;
fn order_by(
&self,
column_names: &[&str],
ascending: &[bool],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn limit(&self, n: usize) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn union(
&self,
other: &dyn DataFrameBackend,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn union_by_name(
&self,
other: &dyn DataFrameBackend,
allow_missing_columns: bool,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn distinct(
&self,
subset: Option<Vec<&str>>,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn drop_columns(
&self,
columns: &[&str],
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn with_column_renamed(
&self,
old_name: &str,
new_name: &str,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn cross_join(
&self,
other: &dyn DataFrameBackend,
) -> Result<Box<dyn DataFrameBackend>, EngineError>;
fn collect(&self) -> Result<CollectedRows, EngineError>;
fn schema(&self) -> Result<StructType, EngineError>;
fn columns(&self) -> Result<Vec<String>, EngineError>;
fn count(&self) -> Result<u64, EngineError>;
}Expand description
Backend for DataFrame operations. All expression arguments use ExprIr.
Implementors can be downcast via as_any() for backend-specific operations (e.g. join).
Required Methods§
Sourcefn as_any(&self) -> &(dyn Any + Send + Sync)
fn as_any(&self) -> &(dyn Any + Send + Sync)
For downcasting to concrete backend type (e.g. for join with same backend).
fn filter( &self, condition: &ExprIr, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn select( &self, exprs: &[ExprIr], ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn select_columns( &self, columns: &[&str], ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn with_column( &self, name: &str, expr: &ExprIr, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn join( &self, other: &dyn DataFrameBackend, on: &[&str], how: JoinType, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn group_by( &self, column_names: &[&str], ) -> Result<Box<dyn GroupedDataBackend>, EngineError>
fn order_by( &self, column_names: &[&str], ascending: &[bool], ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn limit(&self, n: usize) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn union( &self, other: &dyn DataFrameBackend, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn union_by_name( &self, other: &dyn DataFrameBackend, allow_missing_columns: bool, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn distinct( &self, subset: Option<Vec<&str>>, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn drop_columns( &self, columns: &[&str], ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn with_column_renamed( &self, old_name: &str, new_name: &str, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn cross_join( &self, other: &dyn DataFrameBackend, ) -> Result<Box<dyn DataFrameBackend>, EngineError>
fn collect(&self) -> Result<CollectedRows, EngineError>
fn schema(&self) -> Result<StructType, EngineError>
fn columns(&self) -> Result<Vec<String>, EngineError>
fn count(&self) -> Result<u64, EngineError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".