#![allow(clippy::multiple_crate_versions)]
mod elements;
mod empty;
mod r#enum;
mod exportable;
mod metadata;
mod properties;
mod r#ref;
mod serializable;
mod serializer;
mod tagged_union;
mod r#type;
#[cfg(feature = "any")]
mod value;
mod values;
pub use arri_common::EnumTransformation;
pub use elements::ElementsSchema;
pub use empty::EmptySchema;
pub use r#enum::EnumSchema;
pub use exportable::Exportable;
pub use metadata::MetadataSchema;
pub use properties::PropertiesSchema;
pub use r#ref::RefSchema;
pub use serializable::Serializable;
pub use serializer::Serializer;
pub use tagged_union::TaggedUnionSchema;
pub use r#type::{TypeSchema, Types};
#[cfg(feature = "any")]
pub use value::{NumberValue, Value};
pub use values::ValuesSchema;
pub mod type_utils {
pub fn get_type_name_from(repr: impl ToString) -> String {
repr.to_string()
.split(|c: char| !c.is_alphanumeric() && c != '_')
.filter(|word| !word.is_empty() && word.chars().next().unwrap().is_uppercase())
.collect::<String>()
}
pub fn get_type_name<T>() -> String
where
T: ?Sized,
{
get_type_name_from(std::any::type_name::<T>())
}
}