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`], [`MapArray`], [`FixedSizeListArray`], [`StructArray`], [`UnionArray`],
9//! [`ExtensionArray`], and [`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(crate) mod fixed_width;
64
65pub mod fixed_size_list;
66pub use fixed_size_list::FixedSizeList;
67pub use fixed_size_list::FixedSizeListArray;
68
69pub mod interleave;
70pub use interleave::Interleave;
71pub use interleave::InterleaveArray;
72
73pub mod list;
74pub use list::List;
75pub use list::ListArray;
76
77pub mod listview;
78pub use listview::ListView;
79pub use listview::ListViewArray;
80
81pub mod map;
82pub use map::Map;
83pub use map::MapArray;
84
85pub mod masked;
86pub use masked::Masked;
87pub use masked::MaskedArray;
88
89pub mod null;
90pub use null::Null;
91pub use null::NullArray;
92
93pub mod patched;
94pub use patched::Patched;
95pub use patched::PatchedArray;
96
97pub mod piecewise_sequence;
98pub use piecewise_sequence::PiecewiseSequence;
99pub use piecewise_sequence::PiecewiseSequenceArray;
100
101pub mod primitive;
102pub use primitive::Primitive;
103pub use primitive::PrimitiveArray;
104
105pub mod scalar_fn;
106pub use scalar_fn::ScalarFn;
107pub use scalar_fn::ScalarFnArray;
108
109pub mod shared;
110pub use shared::Shared;
111pub use shared::SharedArray;
112
113pub mod slice;
114pub use slice::Slice;
115pub use slice::SliceArray;
116
117pub mod struct_;
118pub use struct_::Struct;
119pub use struct_::StructArray;
120
121pub mod union;
122pub use union::Union;
123pub use union::UnionArray;
124
125pub mod varbin;
126pub use varbin::VarBin;
127pub use varbin::VarBinArray;
128
129pub mod varbinview;
130pub use varbinview::VarBinView;
131pub use varbinview::VarBinViewArray;
132
133pub mod variant;
134pub use variant::Variant;
135pub use variant::VariantArray;
136use vortex_session::VortexSession;
137
138pub(crate) fn initialize(session: &VortexSession) {
139    bool::initialize(session);
140    chunked::initialize(session);
141    decimal::initialize(session);
142    dict::initialize(session);
143    extension::initialize(session);
144    filter::initialize(session);
145    fixed_size_list::initialize(session);
146    list::initialize(session);
147    listview::initialize(session);
148    map::initialize(session);
149    patched::initialize(session);
150    primitive::initialize(session);
151    struct_::initialize(session);
152    varbin::initialize(session);
153    varbinview::initialize(session);
154    variant::initialize(session);
155}
156
157#[cfg(feature = "arbitrary")]
158pub mod arbitrary;