Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-arrow/src/io/ipc/write/serialize/dictionary.rs
6940 views
1
use super::*;
2
3
// use `write_keys` to either write keys or values
4
#[allow(clippy::too_many_arguments)]
5
pub fn write_dictionary<K: DictionaryKey>(
6
array: &DictionaryArray<K>,
7
buffers: &mut Vec<ipc::Buffer>,
8
arrow_data: &mut Vec<u8>,
9
nodes: &mut Vec<ipc::FieldNode>,
10
offset: &mut i64,
11
is_little_endian: bool,
12
compression: Option<Compression>,
13
write_keys: bool,
14
) -> usize {
15
if write_keys {
16
write_primitive(
17
array.keys(),
18
buffers,
19
arrow_data,
20
offset,
21
is_little_endian,
22
compression,
23
);
24
array.keys().len()
25
} else {
26
write(
27
array.values().as_ref(),
28
buffers,
29
arrow_data,
30
nodes,
31
offset,
32
is_little_endian,
33
compression,
34
);
35
array.values().len()
36
}
37
}
38
39