Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-arrow/src/legacy/is_valid.rs
6939 views
1
#![allow(unsafe_op_in_unsafe_fn)]
2
use crate::array::{
3
Array, BinaryArray, BooleanArray, FixedSizeListArray, ListArray, PrimitiveArray, Utf8Array,
4
};
5
use crate::types::NativeType;
6
7
pub trait IsValid {
8
/// # Safety
9
/// no bound checks
10
unsafe fn is_valid_unchecked(&self, i: usize) -> bool;
11
}
12
13
pub trait ArrowArray: Array {}
14
15
impl ArrowArray for BinaryArray<i64> {}
16
impl ArrowArray for Utf8Array<i64> {}
17
impl<T: NativeType> ArrowArray for PrimitiveArray<T> {}
18
impl ArrowArray for BooleanArray {}
19
impl ArrowArray for ListArray<i64> {}
20
impl ArrowArray for FixedSizeListArray {}
21
22
impl<A: ArrowArray> IsValid for A {
23
#[inline]
24
unsafe fn is_valid_unchecked(&self, i: usize) -> bool {
25
!self.is_null_unchecked(i)
26
}
27
}
28
29