Skip to main content

orc_format/read/decode/
mod.rs

1//! Contains different iterators that receive a reader ([`std::io::Read`])
2//! and return values for each of ORC's physical types (e.g. boolean).
3mod boolean_rle;
4mod float;
5mod rle_v2;
6mod variable_length;
7
8pub use boolean_rle::{BooleanIter, BooleanRleRunIter, BooleanRun};
9pub use float::{Float, FloatIter};
10pub use rle_v2::{
11    SignedRleV2Iter, SignedRleV2Run, SignedRleV2RunIter, UnsignedRleV2Iter, UnsignedRleV2Run,
12    UnsignedRleV2RunIter,
13};
14pub use variable_length::Values;
15
16#[inline]
17fn read_u8<R: std::io::Read>(reader: &mut R) -> Result<u8, std::io::Error> {
18    let mut buf = [0; 1];
19    reader.read_exact(&mut buf)?;
20    Ok(buf[0])
21}