Path: blob/main/crates/polars-arrow/src/legacy/kernels/string.rs
8420 views
use polars_buffer::Buffer;12use crate::array::{Array, ArrayRef, UInt32Array, Utf8ViewArray};3use crate::datatypes::ArrowDataType;4use crate::legacy::trusted_len::TrustedLenPush;56pub fn utf8view_len_bytes(array: &Utf8ViewArray) -> ArrayRef {7let values = array.len_iter().collect::<Vec<_>>();8let values: Buffer<_> = values.into();9let array = UInt32Array::new(ArrowDataType::UInt32, values, array.validity().cloned());10Box::new(array)11}1213pub fn string_len_chars(array: &Utf8ViewArray) -> ArrayRef {14let values = array.values_iter().map(|x| x.chars().count() as u32);15let values: Buffer<_> = Vec::from_trusted_len_iter(values).into();16let array = UInt32Array::new(ArrowDataType::UInt32, values, array.validity().cloned());17Box::new(array)18}192021