Skip to main content

robin_sparkless_core/engine/
reader.rs

1//! Engine-agnostic DataFrameReader backend trait.
2
3use crate::engine::DataFrameBackend;
4use crate::error::EngineError;
5use std::path::Path;
6
7/// Backend for reading files into a DataFrame.
8pub trait DataFrameReaderBackend: Send + Sync {
9    fn csv(&self, path: &Path) -> Result<Box<dyn DataFrameBackend>, EngineError>;
10    fn parquet(&self, path: &Path) -> Result<Box<dyn DataFrameBackend>, EngineError>;
11    fn json(&self, path: &Path) -> Result<Box<dyn DataFrameBackend>, EngineError>;
12    fn table(&self, name: &str) -> Result<Box<dyn DataFrameBackend>, EngineError>;
13}