mod array;
mod callable;
mod callable_path;
mod canonical_path_resolver;
pub mod function_pointer;
mod generic;
mod generic_argument;
pub(crate) mod generics_equivalence;
mod lifetime;
mod named_lifetime;
mod path_type;
mod raw_pointer;
pub(crate) mod render;
mod scalar_primitive;
mod slice;
mod tuple;
mod type_;
mod type_reference;
pub use array::Array;
pub use callable::{
Callable, CallableInput, EnumVariantInit, FnHeader, FreeFunction, InherentMethod,
RustIdentifier, StructLiteralInit, TraitMethod,
};
pub use callable_path::{
EnumVariantConstructorPath, FreeFunctionPath, InherentMethodPath, StructLiteralPath,
TraitMethodPath,
};
pub use canonical_path_resolver::{CanonicalPathResolver, NoOpResolver};
pub use function_pointer::{FunctionPointer, FunctionPointerInput};
pub use generic::Generic;
pub use generic_argument::{ConstGenericArgument, GenericArgument, GenericLifetimeParameter};
pub use lifetime::Lifetime;
pub use named_lifetime::NamedLifetime;
pub use path_type::PathType;
pub use raw_pointer::RawPointer;
pub use scalar_primitive::{ScalarPrimitive, UnknownPrimitive};
pub use slice::Slice;
pub use tuple::Tuple;
pub use type_::CanonicalType;
pub use type_reference::TypeReference;
#[derive(serde::Serialize, serde::Deserialize, Eq, PartialEq, Hash, Clone)]
pub enum Type {
Path(PathType),
Reference(TypeReference),
Tuple(Tuple),
ScalarPrimitive(ScalarPrimitive),
Slice(Slice),
Array(Array),
RawPointer(RawPointer),
FunctionPointer(FunctionPointer),
Generic(Generic),
TypeAlias(PathType),
}