Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-arrow/src/legacy/kernels/string.rs
6939 views
1
use crate::array::{Array, ArrayRef, UInt32Array, Utf8ViewArray};
2
use crate::buffer::Buffer;
3
use crate::datatypes::ArrowDataType;
4
use crate::legacy::trusted_len::TrustedLenPush;
5
6
pub fn utf8view_len_bytes(array: &Utf8ViewArray) -> ArrayRef {
7
let values = array.len_iter().collect::<Vec<_>>();
8
let values: Buffer<_> = values.into();
9
let array = UInt32Array::new(ArrowDataType::UInt32, values, array.validity().cloned());
10
Box::new(array)
11
}
12
13
pub fn string_len_chars(array: &Utf8ViewArray) -> ArrayRef {
14
let values = array.values_iter().map(|x| x.chars().count() as u32);
15
let values: Buffer<_> = Vec::from_trusted_len_iter(values).into();
16
let array = UInt32Array::new(ArrowDataType::UInt32, values, array.validity().cloned());
17
Box::new(array)
18
}
19
20