use crate::Id;
pub trait Type {
const PREFIX: &'static str;
}
pub trait Identifiable
where
Self::Output: Type,
{
type Output;
fn id(&self) -> Id<Self::Output>;
}
impl<T: Type, U: Identifiable<Output = T>> From<U> for Id<T> {
fn from(value: U) -> Self {
value.id()
}
}