Skip to content

Commit 536d048

Browse files
committed
Clean up bit_reader expect
1 parent bcb5926 commit 536d048

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

parquet/src/encodings/rle.rs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,10 @@ impl RleDecoder {
384384
} else if self.bit_packed_left > 0 {
385385
let mut num_values =
386386
cmp::min(buffer.len() - values_read, self.bit_packed_left as usize);
387-
let bit_reader = self.bit_reader.as_mut().expect("bit_reader should be set");
387+
let bit_reader = self
388+
.bit_reader
389+
.as_mut()
390+
.ok_or_else(|| ParquetError::General("bit_reader should be set".into()))?;
388391

389392
num_values = bit_reader.get_batch::<T>(
390393
&mut buffer[values_read..values_read + num_values],
@@ -416,7 +419,10 @@ impl RleDecoder {
416419
} else if self.bit_packed_left > 0 {
417420
let mut num_values =
418421
cmp::min(num_values - values_skipped, self.bit_packed_left as usize);
419-
let bit_reader = self.bit_reader.as_mut().expect("bit_reader should be set");
422+
let bit_reader = self
423+
.bit_reader
424+
.as_mut()
425+
.ok_or_else(|| ParquetError::General("bit_reader should be set".into()))?;
420426

421427
num_values = bit_reader.skip(num_values, self.bit_width as usize);
422428
if num_values == 0 {
@@ -460,7 +466,10 @@ impl RleDecoder {
460466
self.rle_left -= num_values as u32;
461467
values_read += num_values;
462468
} else if self.bit_packed_left > 0 {
463-
let bit_reader = self.bit_reader.as_mut().expect("bit_reader should be set");
469+
let bit_reader = self
470+
.bit_reader
471+
.as_mut()
472+
.ok_or_else(|| ParquetError::General("bit_reader should be set".into()))?;
464473

465474
loop {
466475
let to_read = index_buf
@@ -499,7 +508,10 @@ impl RleDecoder {
499508

500509
#[inline]
501510
fn reload(&mut self) -> Result<bool> {
502-
let bit_reader = self.bit_reader.as_mut().expect("bit_reader should be set");
511+
let bit_reader = self
512+
.bit_reader
513+
.as_mut()
514+
.ok_or_else(|| ParquetError::General("bit_reader should be set".into()))?;
503515

504516
if let Some(indicator_value) = bit_reader.get_vlq_int() {
505517
// fastparquet adds padding to the end of pages. This is not spec-compliant
@@ -514,9 +526,11 @@ impl RleDecoder {
514526
self.rle_left = (indicator_value >> 1) as u32;
515527
let value_width = bit_util::ceil(self.bit_width as usize, 8);
516528
self.current_value = bit_reader.get_aligned::<u64>(value_width);
517-
if self.current_value.is_none() {
518-
return Err(ParquetError::General("parquet_data_error: not enough data for RLE decoding".into()))
519-
}
529+
self.current_value.ok_or_else(|| {
530+
ParquetError::General(
531+
"parquet_data_error: not enough data for RLE decoding".into(),
532+
)
533+
})?;
520534
}
521535
Ok(true)
522536
} else {

0 commit comments

Comments
 (0)