Skip to main content

vortex_json/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4#![warn(missing_docs)]
5#![warn(clippy::missing_docs_in_private_items)]
6#![warn(clippy::missing_errors_doc)]
7#![warn(clippy::missing_panics_doc)]
8#![warn(clippy::missing_safety_doc)]
9
10//! Extension type and related functionality for a JSON extension type for Vortex.
11
12mod arrow;
13mod dtype;
14mod json_to_variant;
15
16use std::sync::Arc;
17
18pub use dtype::Json;
19pub use json_to_variant::JsonToVariant;
20pub use json_to_variant::JsonToVariantOptions;
21pub use json_to_variant::ShreddingSpec;
22pub use json_to_variant::json_to_variant;
23use vortex_array::arrow::ArrowSessionExt;
24use vortex_array::dtype::session::DTypeSessionExt;
25use vortex_array::scalar_fn::session::ScalarFnSessionExt;
26use vortex_session::VortexSession;
27
28/// Register JSON extension support with a session.
29pub fn initialize(session: &VortexSession) {
30    session.dtypes().register(Json);
31    session.arrow().register_exporter(Arc::new(Json));
32    session.arrow().register_importer(Arc::new(Json));
33    session.scalar_fns().register(JsonToVariant);
34}