Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-parquet/src/arrow/read/deserialize/binview/required_masked.rs
8512 views
1
use arrow::array::MutableBinaryViewArray;
2
use arrow::bitmap::Bitmap;
3
4
use super::decode_plain_generic;
5
use crate::parquet::error::ParquetResult;
6
7
pub fn decode(
8
num_expected_values: usize,
9
values: &[u8],
10
target: &mut MutableBinaryViewArray<[u8]>,
11
12
mask: &Bitmap,
13
14
verify_utf8: bool,
15
) -> ParquetResult<()> {
16
if mask.unset_bits() == 0 {
17
return super::required::decode(
18
num_expected_values,
19
values,
20
Some(mask.len()),
21
target,
22
verify_utf8,
23
);
24
}
25
26
let mut mask_iter = mask.iter();
27
decode_plain_generic(
28
values,
29
target,
30
mask.set_bits(),
31
|| Some((true, mask_iter.next()?)),
32
verify_utf8,
33
)
34
}
35
36