#[cfg(feature = "arbitrary")]
mod arbitrary;
pub mod arrow;
mod bigint;
mod coercion;
mod decimal;
mod dtype_impl;
pub mod extension;
mod f16;
mod field;
mod field_mask;
mod field_names;
mod native_dtype;
mod nullability;
mod ptype;
pub mod serde;
pub mod session;
mod struct_;
use std::sync::Arc;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum DType {
Null,
Bool(Nullability),
Primitive(PType, Nullability),
Decimal(DecimalDType, Nullability),
Utf8(Nullability),
Binary(Nullability),
List(Arc<DType>, Nullability),
FixedSizeList(Arc<DType>, u32, Nullability),
Struct(StructFields, Nullability),
Extension(ExtDTypeRef),
Variant(Nullability),
}
pub use bigint::*;
pub use decimal::*;
pub use dtype_impl::NativeDType;
pub use f16::*;
pub use field::*;
pub use field_mask::*;
pub use field_names::*;
pub use half;
pub use nullability::*;
pub use ptype::*;
pub use struct_::*;
use crate::dtype::extension::ExtDTypeRef;
pub mod proto {
pub use vortex_proto::dtype;
}
pub mod flatbuffers {
pub use vortex_flatbuffers::dtype::*;
}
#[cfg(test)]
mod test {
use std::sync::LazyLock;
use vortex_session::VortexSession;
use crate::dtype::session::DTypeSession;
pub(crate) static SESSION: LazyLock<VortexSession> =
LazyLock::new(|| VortexSession::empty().with::<DTypeSession>());
}