vortex_array/arrays/bool/compute/
to_arrow.rs1use std::sync::Arc;
2
3use arrow_array::{ArrayRef, BooleanArray as ArrowBoolArray};
4use arrow_schema::DataType;
5use vortex_error::{VortexResult, vortex_bail};
6
7use crate::Array;
8use crate::arrays::{BoolArray, BoolEncoding};
9use crate::compute::ToArrowFn;
10
11impl ToArrowFn<&BoolArray> for BoolEncoding {
12 fn to_arrow(&self, array: &BoolArray, data_type: &DataType) -> VortexResult<Option<ArrayRef>> {
13 if data_type != &DataType::Boolean {
14 vortex_bail!("Unsupported data type: {data_type}");
15 }
16 Ok(Some(Arc::new(ArrowBoolArray::new(
17 array.boolean_buffer().clone(),
18 array.validity_mask()?.to_null_buffer(),
19 ))))
20 }
21}