polars_compute/gather/
binview.rs

1use arrow::array::{BinaryViewArrayGeneric, ViewType};
2
3use self::primitive::take_values_and_validity_unchecked;
4use super::*;
5
6/// # Safety
7/// No bound checks
8pub unsafe fn take_binview_unchecked<V: ViewType + ?Sized>(
9    arr: &BinaryViewArrayGeneric<V>,
10    indices: &IdxArr,
11) -> BinaryViewArrayGeneric<V> {
12    let (views, validity) =
13        take_values_and_validity_unchecked(arr.views(), arr.validity(), indices);
14
15    BinaryViewArrayGeneric::new_unchecked_unknown_md(
16        arr.dtype().clone(),
17        views.into(),
18        arr.data_buffers().clone(),
19        validity,
20        Some(arr.total_buffer_len()),
21    )
22    .maybe_gc()
23}