vortex_vector/null/scalar.rs
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use crate::null::NullVectorMut;
5use crate::{Scalar, ScalarOps, VectorMut};
6
7/// Represents a null scalar value.
8#[derive(Debug)]
9pub struct NullScalar;
10
11impl ScalarOps for NullScalar {
12 fn is_valid(&self) -> bool {
13 false
14 }
15
16 fn repeat(&self, n: usize) -> VectorMut {
17 NullVectorMut::new(n).into()
18 }
19}
20
21impl From<NullScalar> for Scalar {
22 fn from(val: NullScalar) -> Self {
23 Scalar::Null(val)
24 }
25}