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/union.rs
6940 views
1
use super::*;
2
3
pub(super) fn write_union(
4
array: &UnionArray,
5
buffers: &mut Vec<ipc::Buffer>,
6
arrow_data: &mut Vec<u8>,
7
nodes: &mut Vec<ipc::FieldNode>,
8
offset: &mut i64,
9
is_little_endian: bool,
10
compression: Option<Compression>,
11
) {
12
write_buffer(
13
array.types(),
14
buffers,
15
arrow_data,
16
offset,
17
is_little_endian,
18
compression,
19
);
20
21
if let Some(offsets) = array.offsets() {
22
write_buffer(
23
offsets,
24
buffers,
25
arrow_data,
26
offset,
27
is_little_endian,
28
compression,
29
);
30
}
31
array.fields().iter().for_each(|array| {
32
write(
33
array.as_ref(),
34
buffers,
35
arrow_data,
36
nodes,
37
offset,
38
is_little_endian,
39
compression,
40
)
41
});
42
}
43
44