use super::{TypeMetadata, TypeRegistry};
pub trait TypeAlias {
fn register_alias(name: &str, registry: &mut TypeRegistry);
}
impl<T> TypeAlias for T
where
T: TypeMetadata + 'static,
{
fn register_alias(name: &str, registry: &mut TypeRegistry) {
let inner = Self::metadata(registry);
registry.register_alias(
crate::TypeId::for_type::<Self>(),
crate::types::Alias {
name: name.to_string(),
inner,
},
);
}
}