use ;
use *;
/// Trait that all drivers implement to load data from an in-memory byte slice.
///
/// This abstraction allows the engine to support multiple file formats
/// (CSV, Parquet, etc.) behind a uniform interface. Each driver is responsible
/// for parsing raw bytes into a Polars `DataFrame`.
/// Factory function to get the correct driver based on a file extension.
///
/// # Arguments
/// * `extension` - File extension string (e.g., `"csv"`, `"parquet"`).
///
/// # Returns
/// * `Box<dyn Driver>` - A boxed driver implementing the `Driver` trait.
///
/// # Errors
/// Returns an error if the extension is unsupported.