vortex_runend/compute/
fill_null.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use vortex_array::compute::{FillNullKernel, FillNullKernelAdapter, fill_null};
5use vortex_array::{ArrayRef, IntoArray, register_kernel};
6use vortex_error::VortexResult;
7use vortex_scalar::Scalar;
8
9use crate::{RunEndArray, RunEndVTable};
10
11impl FillNullKernel for RunEndVTable {
12    fn fill_null(&self, array: &RunEndArray, fill_value: &Scalar) -> VortexResult<ArrayRef> {
13        Ok(RunEndArray::with_offset_and_length(
14            array.ends().clone(),
15            fill_null(array.values(), fill_value)?,
16            array.offset(),
17            array.len(),
18        )?
19        .into_array())
20    }
21}
22
23register_kernel!(FillNullKernelAdapter(RunEndVTable).lift());