polars_io/parquet/read/
options.rs1use polars_core::schema::SchemaRef;
2#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5use crate::parquet::encryption::ParquetDecryption;
6
7#[derive(Clone, Debug, PartialEq, Eq, Hash)]
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9#[cfg_attr(feature = "dsl-schema", derive(schemars::JsonSchema))]
10pub struct ParquetOptions {
11 pub schema: Option<SchemaRef>,
12 pub parallel: ParallelStrategy,
13 pub low_memory: bool,
14 pub use_statistics: bool,
15 #[cfg_attr(feature = "serde", serde(default))]
17 pub decryption: Option<ParquetDecryption>,
18}
19
20impl Default for ParquetOptions {
21 fn default() -> Self {
22 Self {
23 schema: None,
24 parallel: ParallelStrategy::default(),
25 low_memory: false,
26 use_statistics: true,
27 decryption: None,
28 }
29 }
30}
31
32#[derive(Copy, Clone, Debug, Eq, PartialEq, Default, Hash)]
33#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
34#[cfg_attr(feature = "dsl-schema", derive(schemars::JsonSchema))]
35pub enum ParallelStrategy {
36 None,
38 Columns,
40 RowGroups,
42 Prefiltered,
50 #[default]
53 Auto,
54}