Skip to main content

Engine

Trait Engine 

Source
pub trait Engine: AsAny {
    // Required methods
    fn evaluation_handler(&self) -> Arc<dyn EvaluationHandler> ;
    fn storage_handler(&self) -> Arc<dyn StorageHandler> ;
    fn json_handler(&self) -> Arc<dyn JsonHandler> ;
    fn parquet_handler(&self) -> Arc<dyn ParquetHandler> ;

    // Provided method
    fn plan_executor(&self) -> Arc<dyn PlanExecutor>  { ... }
}
Expand description

The Engine trait encapsulates all the functionality an engine or connector needs to provide to the Delta Kernel in order to read the Delta table.

Engines/Connectors are expected to pass an implementation of this trait when reading a Delta table.

Required Methods§

Source

fn evaluation_handler(&self) -> Arc<dyn EvaluationHandler>

Get the connector provided EvaluationHandler.

Source

fn storage_handler(&self) -> Arc<dyn StorageHandler>

Get the connector provided StorageHandler

Source

fn json_handler(&self) -> Arc<dyn JsonHandler>

Get the connector provided JsonHandler.

Source

fn parquet_handler(&self) -> Arc<dyn ParquetHandler>

Get the connector provided ParquetHandler.

Provided Methods§

Source

fn plan_executor(&self) -> Arc<dyn PlanExecutor>

Available on crate feature declarative-plans only.

Get the connector provided PlanExecutor.

The default implementation returns a trivial executor that errors on every operation.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§

Source§

impl Engine for MeteredDeltaEngine

Source§

impl Engine for PlanBasedEngine

Available on crate feature declarative-plans and crate feature default-engine-base and (crate features arrow-conversion or declarative-plans or default-engine-base) only.