Skip to main content

polars_io/external_reader/
mod.rs

1use polars_error::PolarsResult;
2use polars_utils::aliases::PlIndexMap;
3
4#[cfg(feature = "python")]
5pub mod python;
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9#[cfg_attr(feature = "dsl-schema", derive(schemars::JsonSchema))]
10pub enum ExternalReaderBuilder {
11    #[cfg(feature = "python")]
12    Python(python::PythonFileReaderBuilder),
13    /// Unimplemented. Placeholder to avoid empty enum when Python feature is
14    /// disabled.
15    Rust(()),
16}
17
18impl ExternalReaderBuilder {
19    pub fn explain_properties(&self) -> PolarsResult<PlIndexMap<String, String>> {
20        match self {
21            #[cfg(feature = "python")]
22            ExternalReaderBuilder::Python(x) => x.explain_properties(),
23            ExternalReaderBuilder::Rust(()) => unimplemented!(),
24        }
25    }
26}