mod attributes;
mod r#enum;
mod fields;
mod function;
mod generic;
mod list;
mod map;
mod named;
mod primitive;
mod reference;
mod r#struct;
mod tuple;
pub use attributes::Attributes;
pub use r#enum::{Enum, Variant, VariantBuilder};
pub use fields::{Field, Fields, NamedFields, StructBuilder, UnnamedFields};
pub use function::Function;
pub use generic::{Generic, Generic as GenericReference, GenericDefinition};
pub use list::List;
pub use map::Map;
pub use named::{Deprecated, NamedDataType, inline};
pub use primitive::Primitive;
pub use reference::{
NamedReference, NamedReferenceType, OpaqueReference, RecursiveInlineType, Reference,
};
pub(crate) use reference::RecursiveInlineFrame;
pub use r#struct::Struct;
pub use tuple::Tuple;
pub(crate) use reference::NamedId;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum DataType {
Primitive(Primitive),
List(List),
Map(Map),
Struct(Struct),
Enum(Enum),
Tuple(Tuple),
Nullable(Box<DataType>),
Intersection(Vec<DataType>),
Generic(Generic),
Reference(Reference),
}