Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-arrow/src/array/binview/iterator.rs
6939 views
1
use super::BinaryViewArrayGeneric;
2
use crate::array::binview::ViewType;
3
use crate::array::{ArrayAccessor, ArrayValuesIter, MutableBinaryViewArray};
4
use crate::bitmap::utils::{BitmapIter, ZipValidity};
5
6
unsafe impl<'a, T: ViewType + ?Sized> ArrayAccessor<'a> for BinaryViewArrayGeneric<T> {
7
type Item = &'a T;
8
9
#[inline]
10
unsafe fn value_unchecked(&'a self, index: usize) -> Self::Item {
11
self.value_unchecked(index)
12
}
13
14
#[inline]
15
fn len(&self) -> usize {
16
self.views.len()
17
}
18
}
19
20
/// Iterator of values of an [`BinaryArray`].
21
pub type BinaryViewValueIter<'a, T> = ArrayValuesIter<'a, BinaryViewArrayGeneric<T>>;
22
23
impl<'a, T: ViewType + ?Sized> IntoIterator for &'a BinaryViewArrayGeneric<T> {
24
type Item = Option<&'a T>;
25
type IntoIter = ZipValidity<&'a T, BinaryViewValueIter<'a, T>, BitmapIter<'a>>;
26
27
fn into_iter(self) -> Self::IntoIter {
28
self.iter()
29
}
30
}
31
32
unsafe impl<'a, T: ViewType + ?Sized> ArrayAccessor<'a> for MutableBinaryViewArray<T> {
33
type Item = &'a T;
34
35
#[inline]
36
unsafe fn value_unchecked(&'a self, index: usize) -> Self::Item {
37
self.value_unchecked(index)
38
}
39
40
#[inline]
41
fn len(&self) -> usize {
42
self.views().len()
43
}
44
}
45
46
/// Iterator of values of an [`MutableBinaryViewArray`].
47
pub type MutableBinaryViewValueIter<'a, T> = ArrayValuesIter<'a, MutableBinaryViewArray<T>>;
48
49