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
8420 views
1
use polars_buffer::Buffer;
2
3
use crate::array::{Array, ArrayRef, UInt32Array, Utf8ViewArray};
4
use crate::datatypes::ArrowDataType;
5
use crate::legacy::trusted_len::TrustedLenPush;
6
7
pub fn utf8view_len_bytes(array: &Utf8ViewArray) -> ArrayRef {
8
let values = array.len_iter().collect::<Vec<_>>();
9
let values: Buffer<_> = values.into();
10
let array = UInt32Array::new(ArrowDataType::UInt32, values, array.validity().cloned());
11
Box::new(array)
12
}
13
14
pub fn string_len_chars(array: &Utf8ViewArray) -> ArrayRef {
15
let values = array.values_iter().map(|x| x.chars().count() as u32);
16
let values: Buffer<_> = Vec::from_trusted_len_iter(values).into();
17
let array = UInt32Array::new(ArrowDataType::UInt32, values, array.validity().cloned());
18
Box::new(array)
19
}
20
21