#![cfg_attr(not(test), deny(clippy::clone_on_ref_ptr))]
#![cfg_attr(test, allow(clippy::needless_pass_by_value))]
pub mod access_plan;
mod bloom_filter;
mod decoder_projection;
pub mod file_format;
pub mod metadata;
mod metrics;
mod nested_schema_pruning;
mod opener;
mod page_filter;
mod projection_read_plan;
mod push_decoder;
mod reader;
mod row_filter;
mod row_group_filter;
mod schema_coercion;
mod sink;
mod sort;
pub mod source;
mod supported_predicates;
#[cfg(test)]
mod test_util;
mod virtual_column;
mod writer;
pub use access_plan::{ParquetAccessPlan, ParquetRowSelection, RowGroupAccess};
pub use bloom_filter::BloomFilterStatistics;
pub use file_format::*;
pub use metrics::ParquetFileMetrics;
pub use page_filter::PagePruningAccessPlanFilter;
pub use reader::*; pub use row_filter::build_row_filter;
pub use row_filter::can_expr_be_pushed_down_with_schemas;
pub use row_group_filter::RowGroupAccessPlanFilter;
#[expect(deprecated)]
pub use schema_coercion::coerce_int96_to_resolution;
pub use schema_coercion::{
Int96Coercer, apply_file_schema_type_coercions, transform_binary_to_string,
transform_schema_to_view,
};
pub use sink::ParquetSink;
pub use virtual_column::ParquetVirtualColumn;
pub use writer::plan_to_parquet;