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/read/array/null.rs
6940 views
1
use std::collections::VecDeque;
2
3
use polars_error::{PolarsResult, polars_err};
4
5
use super::super::Node;
6
use crate::array::NullArray;
7
use crate::datatypes::ArrowDataType;
8
use crate::io::ipc::read::array::{try_get_array_length, try_get_field_node};
9
10
pub fn read_null(
11
field_nodes: &mut VecDeque<Node>,
12
dtype: ArrowDataType,
13
limit: Option<usize>,
14
) -> PolarsResult<NullArray> {
15
let field_node = try_get_field_node(field_nodes, &dtype)?;
16
17
let length = try_get_array_length(field_node, limit)?;
18
19
NullArray::try_new(dtype, length)
20
}
21
22
pub fn skip_null(field_nodes: &mut VecDeque<Node>) -> PolarsResult<()> {
23
let _ = field_nodes.pop_front().ok_or_else(|| {
24
polars_err!(
25
oos = "IPC: unable to fetch the field for null. The file or stream is corrupted."
26
)
27
})?;
28
Ok(())
29
}
30
31