@@ -19,43 +19,32 @@ use std::mem;
1919
2020use super :: rle:: RleEncoder ;
2121
22- use crate :: basic:: Encoding ;
2322use crate :: data_type:: AsBytes ;
24- use crate :: util:: bit_util:: { BitWriter , num_required_bits} ;
23+ use crate :: util:: bit_util:: num_required_bits;
2524
2625/// Encoder for definition/repetition levels.
2726/// Currently only supports Rle and BitPacked (dev/null) encoding, including v2.
2827pub enum LevelEncoder {
2928 Rle ( RleEncoder ) ,
3029 RleV2 ( RleEncoder ) ,
31- BitPacked ( u8 , BitWriter ) ,
3230}
3331
3432impl LevelEncoder {
3533 /// Creates a new streaming level encoder for Data Page v1.
3634 ///
37- /// Unlike [`v1`](Self::v1), this does not require knowing the number of values
35+ /// This does not require knowing the number of values
3836 /// upfront, making it suitable for incremental encoding where levels are fed in
3937 /// as they arrive via [`put`](Self::put).
40- pub fn v1_streaming ( encoding : Encoding , max_level : i16 ) -> Self {
38+ pub fn v1_streaming ( max_level : i16 ) -> Self {
4139 let bit_width = num_required_bits ( max_level as u64 ) ;
42- match encoding {
43- Encoding :: RLE => {
44- // Reserve space for length header
45- let buffer = vec ! [ 0u8 ; 4 ] ;
46- LevelEncoder :: Rle ( RleEncoder :: new_from_buf ( bit_width, buffer) )
47- }
48- #[ allow( deprecated) ]
49- Encoding :: BIT_PACKED => {
50- LevelEncoder :: BitPacked ( bit_width, BitWriter :: new_from_buf ( Vec :: new ( ) ) )
51- }
52- _ => panic ! ( "Unsupported encoding type {encoding}" ) ,
53- }
40+ // Reserve space for length header
41+ let buffer = vec ! [ 0u8 ; 4 ] ;
42+ LevelEncoder :: Rle ( RleEncoder :: new_from_buf ( bit_width, buffer) )
5443 }
5544
5645 /// Creates a new streaming RLE level encoder for Data Page v2.
5746 ///
58- /// Unlike [`v2`](Self::v2), this does not require knowing the number of values
47+ /// This does not require knowing the number of values
5948 /// upfront, making it suitable for incremental encoding where levels are fed in
6049 /// as they arrive via [`put`](Self::put).
6150 pub fn v2_streaming ( max_level : i16 ) -> Self {
@@ -80,12 +69,6 @@ impl LevelEncoder {
8069 num_encoded += 1 ;
8170 }
8271 }
83- LevelEncoder :: BitPacked ( bit_width, ref mut encoder) => {
84- for value in buffer {
85- encoder. put_value ( * value as u64 , bit_width as usize ) ;
86- num_encoded += 1 ;
87- }
88- }
8972 }
9073 num_encoded
9174 }
@@ -106,7 +89,6 @@ impl LevelEncoder {
10689 encoded_data
10790 }
10891 LevelEncoder :: RleV2 ( encoder) => encoder. consume ( ) ,
109- LevelEncoder :: BitPacked ( _, encoder) => encoder. consume ( ) ,
11092 }
11193 }
11294
@@ -126,7 +108,6 @@ impl LevelEncoder {
126108 f ( data)
127109 }
128110 LevelEncoder :: RleV2 ( encoder) => f ( encoder. flush_buffer ( ) ) ,
129- LevelEncoder :: BitPacked ( _, encoder) => f ( encoder. flush_buffer ( ) ) ,
130111 } ;
131112 match self {
132113 LevelEncoder :: Rle ( encoder) => {
@@ -135,7 +116,6 @@ impl LevelEncoder {
135116 encoder. skip ( mem:: size_of :: < i32 > ( ) ) ;
136117 }
137118 LevelEncoder :: RleV2 ( encoder) => encoder. clear ( ) ,
138- LevelEncoder :: BitPacked ( _, encoder) => encoder. clear ( ) ,
139119 }
140120 result
141121 }
0 commit comments