Path: blob/main/crates/polars-arrow/src/array/utf8/iterator.rs
6939 views
use super::{MutableUtf8Array, MutableUtf8ValuesArray, Utf8Array};1use crate::array::{ArrayAccessor, ArrayValuesIter};2use crate::bitmap::utils::{BitmapIter, ZipValidity};3use crate::offset::Offset;45unsafe impl<'a, O: Offset> ArrayAccessor<'a> for Utf8Array<O> {6type Item = &'a str;78#[inline]9unsafe fn value_unchecked(&'a self, index: usize) -> Self::Item {10self.value_unchecked(index)11}1213#[inline]14fn len(&self) -> usize {15self.len()16}17}1819/// Iterator of values of an [`Utf8Array`].20pub type Utf8ValuesIter<'a, O> = ArrayValuesIter<'a, Utf8Array<O>>;2122impl<'a, O: Offset> IntoIterator for &'a Utf8Array<O> {23type Item = Option<&'a str>;24type IntoIter = ZipValidity<&'a str, Utf8ValuesIter<'a, O>, BitmapIter<'a>>;2526fn into_iter(self) -> Self::IntoIter {27self.iter()28}29}3031unsafe impl<'a, O: Offset> ArrayAccessor<'a> for MutableUtf8Array<O> {32type Item = &'a str;3334#[inline]35unsafe fn value_unchecked(&'a self, index: usize) -> Self::Item {36self.value_unchecked(index)37}3839#[inline]40fn len(&self) -> usize {41self.len()42}43}4445/// Iterator of values of an [`MutableUtf8ValuesArray`].46pub type MutableUtf8ValuesIter<'a, O> = ArrayValuesIter<'a, MutableUtf8ValuesArray<O>>;4748impl<'a, O: Offset> IntoIterator for &'a MutableUtf8Array<O> {49type Item = Option<&'a str>;50type IntoIter = ZipValidity<&'a str, MutableUtf8ValuesIter<'a, O>, BitmapIter<'a>>;5152fn into_iter(self) -> Self::IntoIter {53self.iter()54}55}5657unsafe impl<'a, O: Offset> ArrayAccessor<'a> for MutableUtf8ValuesArray<O> {58type Item = &'a str;5960#[inline]61unsafe fn value_unchecked(&'a self, index: usize) -> Self::Item {62self.value_unchecked(index)63}6465#[inline]66fn len(&self) -> usize {67self.len()68}69}7071impl<'a, O: Offset> IntoIterator for &'a MutableUtf8ValuesArray<O> {72type Item = &'a str;73type IntoIter = ArrayValuesIter<'a, MutableUtf8ValuesArray<O>>;7475fn into_iter(self) -> Self::IntoIter {76self.iter()77}78}798081