Path: blob/main/crates/polars-parquet/src/parquet/read/levels.rs
6940 views
/// Returns the number of bits needed to store the given maximum definition or repetition level.1#[inline]2pub fn get_bit_width(max_level: i16) -> u32 {316 - max_level.leading_zeros()4}56#[cfg(test)]7mod tests {8use super::get_bit_width;910#[test]11fn test_get_bit_width() {12assert_eq!(0, get_bit_width(0));13assert_eq!(1, get_bit_width(1));14assert_eq!(2, get_bit_width(2));15assert_eq!(2, get_bit_width(3));16assert_eq!(3, get_bit_width(4));17assert_eq!(3, get_bit_width(5));18assert_eq!(3, get_bit_width(6));19assert_eq!(3, get_bit_width(7));20assert_eq!(4, get_bit_width(8));21assert_eq!(4, get_bit_width(15));2223assert_eq!(8, get_bit_width(255));24assert_eq!(9, get_bit_width(256));25}26}272829