Skip to main content

vortex_array/arrays/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4//! Built-in array encodings.
5//!
6//! Canonical arrays are the default uncompressed representation for a logical dtype:
7//! [`NullArray`], [`BoolArray`], [`PrimitiveArray`], [`DecimalArray`], [`VarBinViewArray`],
8//! [`ListViewArray`], [`FixedSizeListArray`], [`StructArray`], [`ExtensionArray`], and
9//! [`VariantArray`].
10//!
11//! Utility and lazy arrays represent common transformations without immediately materializing
12//! their result. Examples include [`ChunkedArray`] for concatenation, [`ConstantArray`] for repeated
13//! values, [`DictArray`] for dictionary encoding, [`FilterArray`] for masked rows, [`SliceArray`]
14//! for views, and [`ScalarFnArray`] for deferred scalar-function execution.
15//!
16//! Some public arrays are primarily internal building blocks. Their constructors and extension
17//! traits document the stable contract; avoid depending on undocumented slot order or metadata
18//! details.
19
20#[cfg(any(test, feature = "_test-harness"))]
21mod assertions;
22
23#[cfg(any(test, feature = "_test-harness"))]
24pub use assertions::assert_arrays_eq_impl;
25
26#[cfg(test)]
27mod validation_tests;
28
29#[cfg(any(test, feature = "_test-harness"))]
30pub mod dict_test;
31
32pub mod bool;
33pub use bool::Bool;
34pub use bool::BoolArray;
35
36pub mod chunked;
37pub use chunked::Chunked;
38pub use chunked::ChunkedArray;
39
40pub mod constant;
41pub use constant::Constant;
42pub use constant::ConstantArray;
43
44pub mod datetime;
45pub use datetime::TemporalArray;
46
47pub mod decimal;
48pub use decimal::Decimal;
49pub use decimal::DecimalArray;
50
51pub mod dict;
52pub use dict::Dict;
53pub use dict::DictArray;
54
55pub mod extension;
56pub use extension::Extension;
57pub use extension::ExtensionArray;
58
59pub mod filter;
60pub use filter::Filter;
61pub use filter::FilterArray;
62
63pub mod fixed_size_list;
64pub use fixed_size_list::FixedSizeList;
65pub use fixed_size_list::FixedSizeListArray;
66
67pub mod interleave;
68pub use interleave::Interleave;
69pub use interleave::InterleaveArray;
70
71pub mod list;
72pub use list::List;
73pub use list::ListArray;
74
75pub mod listview;
76pub use listview::ListView;
77pub use listview::ListViewArray;
78
79pub mod masked;
80pub use masked::Masked;
81pub use masked::MaskedArray;
82
83pub mod null;
84pub use null::Null;
85pub use null::NullArray;
86
87pub mod patched;
88pub use patched::Patched;
89pub use patched::PatchedArray;
90
91pub mod primitive;
92pub use primitive::Primitive;
93pub use primitive::PrimitiveArray;
94
95pub mod scalar_fn;
96pub use scalar_fn::ScalarFn;
97pub use scalar_fn::ScalarFnArray;
98
99pub mod shared;
100pub use shared::Shared;
101pub use shared::SharedArray;
102
103pub mod slice;
104pub use slice::Slice;
105pub use slice::SliceArray;
106
107pub mod struct_;
108pub use struct_::Struct;
109pub use struct_::StructArray;
110
111pub mod varbin;
112pub use varbin::VarBin;
113pub use varbin::VarBinArray;
114
115pub mod varbinview;
116pub use varbinview::VarBinView;
117pub use varbinview::VarBinViewArray;
118
119pub mod variant;
120pub use variant::Variant;
121pub use variant::VariantArray;
122use vortex_session::VortexSession;
123
124pub(crate) fn initialize(session: &VortexSession) {
125    bool::initialize(session);
126    chunked::initialize(session);
127    decimal::initialize(session);
128    dict::initialize(session);
129    extension::initialize(session);
130    filter::initialize(session);
131    fixed_size_list::initialize(session);
132    list::initialize(session);
133    listview::initialize(session);
134    patched::initialize(session);
135    primitive::initialize(session);
136    struct_::initialize(session);
137    varbin::initialize(session);
138    varbinview::initialize(session);
139    variant::initialize(session);
140}
141
142#[cfg(feature = "arbitrary")]
143pub mod arbitrary;