use typed_builder::TypedBuilder;
use super::{
DEFAULT_METADATA_SIZE_HINT, DEFAULT_RANGE_COALESCE_BYTES, DEFAULT_RANGE_FETCH_CONCURRENCY,
};
#[derive(Clone, Copy, Debug, TypedBuilder)]
#[builder(field_defaults(setter(prefix = "with_")))]
pub(crate) struct ParquetReadOptions {
#[builder(default = Some(DEFAULT_METADATA_SIZE_HINT))]
pub(crate) metadata_size_hint: Option<usize>,
#[builder(default = DEFAULT_RANGE_COALESCE_BYTES)]
pub(crate) range_coalesce_bytes: u64,
#[builder(default = DEFAULT_RANGE_FETCH_CONCURRENCY)]
pub(crate) range_fetch_concurrency: usize,
#[builder(default = true)]
pub(crate) preload_column_index: bool,
#[builder(default = true)]
pub(crate) preload_offset_index: bool,
#[builder(default = false)]
pub(crate) preload_page_index: bool,
}
impl ParquetReadOptions {
pub(crate) fn metadata_size_hint(&self) -> Option<usize> {
self.metadata_size_hint
}
pub(crate) fn range_coalesce_bytes(&self) -> u64 {
self.range_coalesce_bytes
}
pub(crate) fn range_fetch_concurrency(&self) -> usize {
self.range_fetch_concurrency
}
pub(crate) fn preload_column_index(&self) -> bool {
self.preload_column_index
}
pub(crate) fn preload_offset_index(&self) -> bool {
self.preload_offset_index
}
pub(crate) fn preload_page_index(&self) -> bool {
self.preload_page_index
}
}