Skip to content

Commit c0581d4

Browse files
authored
Inline BaseArrayVTable (#6697)
Inline the BaseArrayVTable to simplify array implementation. --------- Signed-off-by: Nicholas Gates <nick@nickgates.com>
1 parent 065f214 commit c0581d4

73 files changed

Lines changed: 1891 additions & 2480 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

encodings/alp/public-api.lock

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,6 @@ impl vortex_array::vtable::VTable for vortex_alp::ALPRDVTable
172172

173173
pub type vortex_alp::ALPRDVTable::Array = vortex_alp::ALPRDArray
174174

175-
pub type vortex_alp::ALPRDVTable::ArrayVTable = vortex_alp::ALPRDVTable
176-
177175
pub type vortex_alp::ALPRDVTable::Metadata = vortex_array::metadata::ProstMetadata<vortex_alp::ALPRDMetadata>
178176

179177
pub type vortex_alp::ALPRDVTable::OperationsVTable = vortex_alp::ALPRDVTable
@@ -182,36 +180,34 @@ pub type vortex_alp::ALPRDVTable::ValidityVTable = vortex_array::vtable::validit
182180

183181
pub type vortex_alp::ALPRDVTable::VisitorVTable = vortex_alp::ALPRDVTable
184182

183+
pub fn vortex_alp::ALPRDVTable::array_eq(array: &vortex_alp::ALPRDArray, other: &vortex_alp::ALPRDArray, precision: vortex_array::hash::Precision) -> bool
184+
185+
pub fn vortex_alp::ALPRDVTable::array_hash<H: core::hash::Hasher>(array: &vortex_alp::ALPRDArray, state: &mut H, precision: vortex_array::hash::Precision)
186+
185187
pub fn vortex_alp::ALPRDVTable::build(dtype: &vortex_array::dtype::DType, len: usize, metadata: &Self::Metadata, _buffers: &[vortex_array::buffer::BufferHandle], children: &dyn vortex_array::serde::ArrayChildren) -> vortex_error::VortexResult<vortex_alp::ALPRDArray>
186188

187189
pub fn vortex_alp::ALPRDVTable::deserialize(bytes: &[u8], _dtype: &vortex_array::dtype::DType, _len: usize, _buffers: &[vortex_array::buffer::BufferHandle], _session: &vortex_session::VortexSession) -> vortex_error::VortexResult<Self::Metadata>
188190

191+
pub fn vortex_alp::ALPRDVTable::dtype(array: &vortex_alp::ALPRDArray) -> &vortex_array::dtype::DType
192+
189193
pub fn vortex_alp::ALPRDVTable::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::array::ArrayRef>
190194

191195
pub fn vortex_alp::ALPRDVTable::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
192196

193197
pub fn vortex_alp::ALPRDVTable::id(_array: &Self::Array) -> vortex_array::vtable::dyn_::ArrayId
194198

199+
pub fn vortex_alp::ALPRDVTable::len(array: &vortex_alp::ALPRDArray) -> usize
200+
195201
pub fn vortex_alp::ALPRDVTable::metadata(array: &vortex_alp::ALPRDArray) -> vortex_error::VortexResult<Self::Metadata>
196202

197203
pub fn vortex_alp::ALPRDVTable::reduce_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
198204

199205
pub fn vortex_alp::ALPRDVTable::serialize(metadata: Self::Metadata) -> vortex_error::VortexResult<core::option::Option<alloc::vec::Vec<u8>>>
200206

201-
pub fn vortex_alp::ALPRDVTable::with_children(array: &mut Self::Array, children: alloc::vec::Vec<vortex_array::array::ArrayRef>) -> vortex_error::VortexResult<()>
202-
203-
impl vortex_array::vtable::array::BaseArrayVTable<vortex_alp::ALPRDVTable> for vortex_alp::ALPRDVTable
204-
205-
pub fn vortex_alp::ALPRDVTable::array_eq(array: &vortex_alp::ALPRDArray, other: &vortex_alp::ALPRDArray, precision: vortex_array::hash::Precision) -> bool
206-
207-
pub fn vortex_alp::ALPRDVTable::array_hash<H: core::hash::Hasher>(array: &vortex_alp::ALPRDArray, state: &mut H, precision: vortex_array::hash::Precision)
208-
209-
pub fn vortex_alp::ALPRDVTable::dtype(array: &vortex_alp::ALPRDArray) -> &vortex_array::dtype::DType
210-
211-
pub fn vortex_alp::ALPRDVTable::len(array: &vortex_alp::ALPRDArray) -> usize
212-
213207
pub fn vortex_alp::ALPRDVTable::stats(array: &vortex_alp::ALPRDArray) -> vortex_array::stats::array::StatsSetRef<'_>
214208

209+
pub fn vortex_alp::ALPRDVTable::with_children(array: &mut Self::Array, children: alloc::vec::Vec<vortex_array::array::ArrayRef>) -> vortex_error::VortexResult<()>
210+
215211
impl vortex_array::vtable::operations::OperationsVTable<vortex_alp::ALPRDVTable> for vortex_alp::ALPRDVTable
216212

217213
pub fn vortex_alp::ALPRDVTable::scalar_at(array: &vortex_alp::ALPRDArray, index: usize) -> vortex_error::VortexResult<vortex_array::scalar::Scalar>
@@ -280,8 +276,6 @@ impl vortex_array::vtable::VTable for vortex_alp::ALPVTable
280276

281277
pub type vortex_alp::ALPVTable::Array = vortex_alp::ALPArray
282278

283-
pub type vortex_alp::ALPVTable::ArrayVTable = vortex_alp::ALPVTable
284-
285279
pub type vortex_alp::ALPVTable::Metadata = vortex_array::metadata::ProstMetadata<vortex_alp::ALPMetadata>
286280

287281
pub type vortex_alp::ALPVTable::OperationsVTable = vortex_alp::ALPVTable
@@ -290,36 +284,34 @@ pub type vortex_alp::ALPVTable::ValidityVTable = vortex_array::vtable::validity:
290284

291285
pub type vortex_alp::ALPVTable::VisitorVTable = vortex_alp::ALPVTable
292286

287+
pub fn vortex_alp::ALPVTable::array_eq(array: &vortex_alp::ALPArray, other: &vortex_alp::ALPArray, precision: vortex_array::hash::Precision) -> bool
288+
289+
pub fn vortex_alp::ALPVTable::array_hash<H: core::hash::Hasher>(array: &vortex_alp::ALPArray, state: &mut H, precision: vortex_array::hash::Precision)
290+
293291
pub fn vortex_alp::ALPVTable::build(dtype: &vortex_array::dtype::DType, len: usize, metadata: &Self::Metadata, _buffers: &[vortex_array::buffer::BufferHandle], children: &dyn vortex_array::serde::ArrayChildren) -> vortex_error::VortexResult<vortex_alp::ALPArray>
294292

295293
pub fn vortex_alp::ALPVTable::deserialize(bytes: &[u8], _dtype: &vortex_array::dtype::DType, _len: usize, _buffers: &[vortex_array::buffer::BufferHandle], _session: &vortex_session::VortexSession) -> vortex_error::VortexResult<Self::Metadata>
296294

295+
pub fn vortex_alp::ALPVTable::dtype(array: &vortex_alp::ALPArray) -> &vortex_array::dtype::DType
296+
297297
pub fn vortex_alp::ALPVTable::execute(array: &Self::Array, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::array::ArrayRef>
298298

299299
pub fn vortex_alp::ALPVTable::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
300300

301301
pub fn vortex_alp::ALPVTable::id(_array: &Self::Array) -> vortex_array::vtable::dyn_::ArrayId
302302

303+
pub fn vortex_alp::ALPVTable::len(array: &vortex_alp::ALPArray) -> usize
304+
303305
pub fn vortex_alp::ALPVTable::metadata(array: &vortex_alp::ALPArray) -> vortex_error::VortexResult<Self::Metadata>
304306

305307
pub fn vortex_alp::ALPVTable::reduce_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
306308

307309
pub fn vortex_alp::ALPVTable::serialize(metadata: Self::Metadata) -> vortex_error::VortexResult<core::option::Option<alloc::vec::Vec<u8>>>
308310

309-
pub fn vortex_alp::ALPVTable::with_children(array: &mut Self::Array, children: alloc::vec::Vec<vortex_array::array::ArrayRef>) -> vortex_error::VortexResult<()>
310-
311-
impl vortex_array::vtable::array::BaseArrayVTable<vortex_alp::ALPVTable> for vortex_alp::ALPVTable
312-
313-
pub fn vortex_alp::ALPVTable::array_eq(array: &vortex_alp::ALPArray, other: &vortex_alp::ALPArray, precision: vortex_array::hash::Precision) -> bool
314-
315-
pub fn vortex_alp::ALPVTable::array_hash<H: core::hash::Hasher>(array: &vortex_alp::ALPArray, state: &mut H, precision: vortex_array::hash::Precision)
316-
317-
pub fn vortex_alp::ALPVTable::dtype(array: &vortex_alp::ALPArray) -> &vortex_array::dtype::DType
318-
319-
pub fn vortex_alp::ALPVTable::len(array: &vortex_alp::ALPArray) -> usize
320-
321311
pub fn vortex_alp::ALPVTable::stats(array: &vortex_alp::ALPArray) -> vortex_array::stats::array::StatsSetRef<'_>
322312

313+
pub fn vortex_alp::ALPVTable::with_children(array: &mut Self::Array, children: alloc::vec::Vec<vortex_array::array::ArrayRef>) -> vortex_error::VortexResult<()>
314+
323315
impl vortex_array::vtable::operations::OperationsVTable<vortex_alp::ALPVTable> for vortex_alp::ALPVTable
324316

325317
pub fn vortex_alp::ALPVTable::scalar_at(array: &vortex_alp::ALPArray, index: usize) -> vortex_error::VortexResult<vortex_array::scalar::Scalar>

encodings/alp/src/alp/array.rs

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ use vortex_array::stats::ArrayStats;
2626
use vortex_array::stats::StatsSetRef;
2727
use vortex_array::vtable;
2828
use vortex_array::vtable::ArrayId;
29-
use vortex_array::vtable::BaseArrayVTable;
3029
use vortex_array::vtable::VTable;
3130
use vortex_array::vtable::ValidityChild;
3231
use vortex_array::vtable::ValidityVTableFromChild;
@@ -50,8 +49,6 @@ impl VTable for ALPVTable {
5049
type Array = ALPArray;
5150

5251
type Metadata = ProstMetadata<ALPMetadata>;
53-
54-
type ArrayVTable = Self;
5552
type OperationsVTable = Self;
5653
type ValidityVTable = ValidityVTableFromChild;
5754
type VisitorVTable = Self;
@@ -60,6 +57,32 @@ impl VTable for ALPVTable {
6057
Self::ID
6158
}
6259

60+
fn len(array: &ALPArray) -> usize {
61+
array.encoded.len()
62+
}
63+
64+
fn dtype(array: &ALPArray) -> &DType {
65+
&array.dtype
66+
}
67+
68+
fn stats(array: &ALPArray) -> StatsSetRef<'_> {
69+
array.stats_set.to_ref(array.as_ref())
70+
}
71+
72+
fn array_hash<H: std::hash::Hasher>(array: &ALPArray, state: &mut H, precision: Precision) {
73+
array.dtype.hash(state);
74+
array.encoded.array_hash(state, precision);
75+
array.exponents.hash(state);
76+
array.patches.array_hash(state, precision);
77+
}
78+
79+
fn array_eq(array: &ALPArray, other: &ALPArray, precision: Precision) -> bool {
80+
array.dtype == other.dtype
81+
&& array.encoded.array_eq(&other.encoded, precision)
82+
&& array.exponents == other.exponents
83+
&& array.patches.array_eq(&other.patches, precision)
84+
}
85+
6386
fn metadata(array: &ALPArray) -> VortexResult<Self::Metadata> {
6487
let exponents = array.exponents();
6588
Ok(ProstMetadata(ALPMetadata {
@@ -423,34 +446,6 @@ impl ValidityChild<ALPVTable> for ALPVTable {
423446
}
424447
}
425448

426-
impl BaseArrayVTable<ALPVTable> for ALPVTable {
427-
fn len(array: &ALPArray) -> usize {
428-
array.encoded.len()
429-
}
430-
431-
fn dtype(array: &ALPArray) -> &DType {
432-
&array.dtype
433-
}
434-
435-
fn stats(array: &ALPArray) -> StatsSetRef<'_> {
436-
array.stats_set.to_ref(array.as_ref())
437-
}
438-
439-
fn array_hash<H: std::hash::Hasher>(array: &ALPArray, state: &mut H, precision: Precision) {
440-
array.dtype.hash(state);
441-
array.encoded.array_hash(state, precision);
442-
array.exponents.hash(state);
443-
array.patches.array_hash(state, precision);
444-
}
445-
446-
fn array_eq(array: &ALPArray, other: &ALPArray, precision: Precision) -> bool {
447-
array.dtype == other.dtype
448-
&& array.encoded.array_eq(&other.encoded, precision)
449-
&& array.exponents == other.exponents
450-
&& array.patches.array_eq(&other.patches, precision)
451-
}
452-
}
453-
454449
impl VisitorVTable<ALPVTable> for ALPVTable {
455450
fn visit_buffers(_array: &ALPArray, _visitor: &mut dyn ArrayBufferVisitor) {}
456451

encodings/alp/src/alp_rd/array.rs

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ use vortex_array::stats::StatsSetRef;
3030
use vortex_array::validity::Validity;
3131
use vortex_array::vtable;
3232
use vortex_array::vtable::ArrayId;
33-
use vortex_array::vtable::BaseArrayVTable;
3433
use vortex_array::vtable::VTable;
3534
use vortex_array::vtable::ValidityChild;
3635
use vortex_array::vtable::ValidityVTableFromChild;
@@ -67,8 +66,6 @@ impl VTable for ALPRDVTable {
6766
type Array = ALPRDArray;
6867

6968
type Metadata = ProstMetadata<ALPRDMetadata>;
70-
71-
type ArrayVTable = Self;
7269
type OperationsVTable = Self;
7370
type ValidityVTable = ValidityVTableFromChild;
7471
type VisitorVTable = Self;
@@ -77,6 +74,40 @@ impl VTable for ALPRDVTable {
7774
Self::ID
7875
}
7976

77+
fn len(array: &ALPRDArray) -> usize {
78+
array.left_parts.len()
79+
}
80+
81+
fn dtype(array: &ALPRDArray) -> &DType {
82+
&array.dtype
83+
}
84+
85+
fn stats(array: &ALPRDArray) -> StatsSetRef<'_> {
86+
array.stats_set.to_ref(array.as_ref())
87+
}
88+
89+
fn array_hash<H: std::hash::Hasher>(array: &ALPRDArray, state: &mut H, precision: Precision) {
90+
array.dtype.hash(state);
91+
array.left_parts.array_hash(state, precision);
92+
array.left_parts_dictionary.array_hash(state, precision);
93+
array.right_parts.array_hash(state, precision);
94+
array.right_bit_width.hash(state);
95+
array.left_parts_patches.array_hash(state, precision);
96+
}
97+
98+
fn array_eq(array: &ALPRDArray, other: &ALPRDArray, precision: Precision) -> bool {
99+
array.dtype == other.dtype
100+
&& array.left_parts.array_eq(&other.left_parts, precision)
101+
&& array
102+
.left_parts_dictionary
103+
.array_eq(&other.left_parts_dictionary, precision)
104+
&& array.right_parts.array_eq(&other.right_parts, precision)
105+
&& array.right_bit_width == other.right_bit_width
106+
&& array
107+
.left_parts_patches
108+
.array_eq(&other.left_parts_patches, precision)
109+
}
110+
80111
fn metadata(array: &ALPRDArray) -> VortexResult<Self::Metadata> {
81112
let dict = array
82113
.left_parts_dictionary()
@@ -435,42 +466,6 @@ impl ValidityChild<ALPRDVTable> for ALPRDVTable {
435466
}
436467
}
437468

438-
impl BaseArrayVTable<ALPRDVTable> for ALPRDVTable {
439-
fn len(array: &ALPRDArray) -> usize {
440-
array.left_parts.len()
441-
}
442-
443-
fn dtype(array: &ALPRDArray) -> &DType {
444-
&array.dtype
445-
}
446-
447-
fn stats(array: &ALPRDArray) -> StatsSetRef<'_> {
448-
array.stats_set.to_ref(array.as_ref())
449-
}
450-
451-
fn array_hash<H: std::hash::Hasher>(array: &ALPRDArray, state: &mut H, precision: Precision) {
452-
array.dtype.hash(state);
453-
array.left_parts.array_hash(state, precision);
454-
array.left_parts_dictionary.array_hash(state, precision);
455-
array.right_parts.array_hash(state, precision);
456-
array.right_bit_width.hash(state);
457-
array.left_parts_patches.array_hash(state, precision);
458-
}
459-
460-
fn array_eq(array: &ALPRDArray, other: &ALPRDArray, precision: Precision) -> bool {
461-
array.dtype == other.dtype
462-
&& array.left_parts.array_eq(&other.left_parts, precision)
463-
&& array
464-
.left_parts_dictionary
465-
.array_eq(&other.left_parts_dictionary, precision)
466-
&& array.right_parts.array_eq(&other.right_parts, precision)
467-
&& array.right_bit_width == other.right_bit_width
468-
&& array
469-
.left_parts_patches
470-
.array_eq(&other.left_parts_patches, precision)
471-
}
472-
}
473-
474469
impl VisitorVTable<ALPRDVTable> for ALPRDVTable {
475470
fn visit_buffers(_array: &ALPRDArray, _visitor: &mut dyn ArrayBufferVisitor) {}
476471

encodings/bytebool/public-api.lock

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@ impl vortex_array::vtable::VTable for vortex_bytebool::ByteBoolVTable
8080

8181
pub type vortex_bytebool::ByteBoolVTable::Array = vortex_bytebool::ByteBoolArray
8282

83-
pub type vortex_bytebool::ByteBoolVTable::ArrayVTable = vortex_bytebool::ByteBoolVTable
84-
8583
pub type vortex_bytebool::ByteBoolVTable::Metadata = vortex_array::metadata::EmptyMetadata
8684

8785
pub type vortex_bytebool::ByteBoolVTable::OperationsVTable = vortex_bytebool::ByteBoolVTable
@@ -90,36 +88,34 @@ pub type vortex_bytebool::ByteBoolVTable::ValidityVTable = vortex_array::vtable:
9088

9189
pub type vortex_bytebool::ByteBoolVTable::VisitorVTable = vortex_bytebool::ByteBoolVTable
9290

91+
pub fn vortex_bytebool::ByteBoolVTable::array_eq(array: &vortex_bytebool::ByteBoolArray, other: &vortex_bytebool::ByteBoolArray, precision: vortex_array::hash::Precision) -> bool
92+
93+
pub fn vortex_bytebool::ByteBoolVTable::array_hash<H: core::hash::Hasher>(array: &vortex_bytebool::ByteBoolArray, state: &mut H, precision: vortex_array::hash::Precision)
94+
9395
pub fn vortex_bytebool::ByteBoolVTable::build(dtype: &vortex_array::dtype::DType, len: usize, _metadata: &Self::Metadata, buffers: &[vortex_array::buffer::BufferHandle], children: &dyn vortex_array::serde::ArrayChildren) -> vortex_error::VortexResult<vortex_bytebool::ByteBoolArray>
9496

9597
pub fn vortex_bytebool::ByteBoolVTable::deserialize(_bytes: &[u8], _dtype: &vortex_array::dtype::DType, _len: usize, _buffers: &[vortex_array::buffer::BufferHandle], _session: &vortex_session::VortexSession) -> vortex_error::VortexResult<Self::Metadata>
9698

99+
pub fn vortex_bytebool::ByteBoolVTable::dtype(array: &vortex_bytebool::ByteBoolArray) -> &vortex_array::dtype::DType
100+
97101
pub fn vortex_bytebool::ByteBoolVTable::execute(array: &Self::Array, _ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<vortex_array::array::ArrayRef>
98102

99103
pub fn vortex_bytebool::ByteBoolVTable::execute_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize, ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
100104

101105
pub fn vortex_bytebool::ByteBoolVTable::id(_array: &Self::Array) -> vortex_array::vtable::dyn_::ArrayId
102106

107+
pub fn vortex_bytebool::ByteBoolVTable::len(array: &vortex_bytebool::ByteBoolArray) -> usize
108+
103109
pub fn vortex_bytebool::ByteBoolVTable::metadata(_array: &vortex_bytebool::ByteBoolArray) -> vortex_error::VortexResult<Self::Metadata>
104110

105111
pub fn vortex_bytebool::ByteBoolVTable::reduce_parent(array: &Self::Array, parent: &vortex_array::array::ArrayRef, child_idx: usize) -> vortex_error::VortexResult<core::option::Option<vortex_array::array::ArrayRef>>
106112

107113
pub fn vortex_bytebool::ByteBoolVTable::serialize(_metadata: Self::Metadata) -> vortex_error::VortexResult<core::option::Option<alloc::vec::Vec<u8>>>
108114

109-
pub fn vortex_bytebool::ByteBoolVTable::with_children(array: &mut Self::Array, children: alloc::vec::Vec<vortex_array::array::ArrayRef>) -> vortex_error::VortexResult<()>
110-
111-
impl vortex_array::vtable::array::BaseArrayVTable<vortex_bytebool::ByteBoolVTable> for vortex_bytebool::ByteBoolVTable
112-
113-
pub fn vortex_bytebool::ByteBoolVTable::array_eq(array: &vortex_bytebool::ByteBoolArray, other: &vortex_bytebool::ByteBoolArray, precision: vortex_array::hash::Precision) -> bool
114-
115-
pub fn vortex_bytebool::ByteBoolVTable::array_hash<H: core::hash::Hasher>(array: &vortex_bytebool::ByteBoolArray, state: &mut H, precision: vortex_array::hash::Precision)
116-
117-
pub fn vortex_bytebool::ByteBoolVTable::dtype(array: &vortex_bytebool::ByteBoolArray) -> &vortex_array::dtype::DType
118-
119-
pub fn vortex_bytebool::ByteBoolVTable::len(array: &vortex_bytebool::ByteBoolArray) -> usize
120-
121115
pub fn vortex_bytebool::ByteBoolVTable::stats(array: &vortex_bytebool::ByteBoolArray) -> vortex_array::stats::array::StatsSetRef<'_>
122116

117+
pub fn vortex_bytebool::ByteBoolVTable::with_children(array: &mut Self::Array, children: alloc::vec::Vec<vortex_array::array::ArrayRef>) -> vortex_error::VortexResult<()>
118+
123119
impl vortex_array::vtable::operations::OperationsVTable<vortex_bytebool::ByteBoolVTable> for vortex_bytebool::ByteBoolVTable
124120

125121
pub fn vortex_bytebool::ByteBoolVTable::scalar_at(array: &vortex_bytebool::ByteBoolArray, index: usize) -> vortex_error::VortexResult<vortex_array::scalar::Scalar>

0 commit comments

Comments
 (0)