|
1 | 1 | use vortex_array::variants::{ |
2 | | - ArrayVariants, BinaryArrayTrait, BoolArrayTrait, PrimitiveArrayTrait, Utf8ArrayTrait, |
| 2 | + BinaryArrayTrait, BoolArrayTrait, PrimitiveArrayTrait, Utf8ArrayTrait, VariantsVTable, |
3 | 3 | }; |
4 | | -use vortex_array::ArrayDType; |
5 | | -use vortex_dtype::DType; |
6 | 4 |
|
7 | | -use crate::DictArray; |
| 5 | +use crate::{DictArray, DictEncoding}; |
8 | 6 |
|
9 | | -impl ArrayVariants for DictArray { |
10 | | - fn as_bool_array(&self) -> Option<&dyn BoolArrayTrait> { |
11 | | - matches!(self.dtype(), DType::Bool(..)).then_some(self) |
| 7 | +impl VariantsVTable<DictArray> for DictEncoding { |
| 8 | + fn as_bool_array<'a>(&self, array: &'a DictArray) -> Option<&'a dyn BoolArrayTrait> { |
| 9 | + Some(array) |
12 | 10 | } |
13 | 11 |
|
14 | | - fn as_primitive_array(&self) -> Option<&dyn PrimitiveArrayTrait> { |
15 | | - matches!(self.dtype(), DType::Primitive(..)).then_some(self) |
| 12 | + fn as_primitive_array<'a>(&self, array: &'a DictArray) -> Option<&'a dyn PrimitiveArrayTrait> { |
| 13 | + Some(array) |
16 | 14 | } |
17 | 15 |
|
18 | | - fn as_utf8_array(&self) -> Option<&dyn Utf8ArrayTrait> { |
19 | | - matches!(self.dtype(), DType::Utf8(..)).then_some(self) |
| 16 | + fn as_utf8_array<'a>(&self, array: &'a DictArray) -> Option<&'a dyn Utf8ArrayTrait> { |
| 17 | + Some(array) |
20 | 18 | } |
21 | 19 |
|
22 | | - fn as_binary_array(&self) -> Option<&dyn BinaryArrayTrait> { |
23 | | - matches!(self.dtype(), DType::Binary(..)).then_some(self) |
| 20 | + fn as_binary_array<'a>(&self, array: &'a DictArray) -> Option<&'a dyn BinaryArrayTrait> { |
| 21 | + Some(array) |
24 | 22 | } |
25 | 23 | } |
26 | 24 |
|
|
0 commit comments