use std::ops::{Range, RangeFrom, RangeFull, RangeTo};
use arrow_array::UInt32Array;
pub mod commit;
pub mod deletion;
pub mod local;
pub mod object_reader;
pub mod object_store;
pub mod object_writer;
pub mod reader;
mod stream;
mod traits;
mod utils;
pub mod writer;
pub use object_reader::CloudObjectReader;
pub use object_writer::ObjectWriter;
pub use reader::FileReader;
pub use stream::{RecordBatchStream, RecordBatchStreamAdapter};
pub use traits::*;
pub use utils::*;
pub use writer::FileWriter;
#[derive(Debug, Clone)]
pub enum ReadBatchParams {
Range(Range<usize>),
RangeFull,
RangeTo(RangeTo<usize>),
RangeFrom(RangeFrom<usize>),
Indices(UInt32Array),
}
impl Default for ReadBatchParams {
fn default() -> Self {
Self::RangeFull
}
}
impl From<&[u32]> for ReadBatchParams {
fn from(value: &[u32]) -> Self {
Self::Indices(UInt32Array::from_iter_values(value.iter().copied()))
}
}
impl From<UInt32Array> for ReadBatchParams {
fn from(value: UInt32Array) -> Self {
Self::Indices(value)
}
}
impl From<RangeFull> for ReadBatchParams {
fn from(_: RangeFull) -> Self {
Self::RangeFull
}
}
impl From<Range<usize>> for ReadBatchParams {
fn from(r: Range<usize>) -> Self {
Self::Range(r)
}
}
impl From<RangeTo<usize>> for ReadBatchParams {
fn from(r: RangeTo<usize>) -> Self {
Self::RangeTo(r)
}
}
impl From<RangeFrom<usize>> for ReadBatchParams {
fn from(r: RangeFrom<usize>) -> Self {
Self::RangeFrom(r)
}
}
impl From<&Self> for ReadBatchParams {
fn from(params: &Self) -> Self {
params.clone()
}
}