use std::{
any::{Any, TypeId},
fmt::Debug,
};
mod seal {
pub trait Seal {}
}
pub trait Data: Any + Send + Sync + Debug + seal::Seal {
const ID: TypeId;
}
impl<T: Any + Send + Sync + Debug> Data for T {
const ID: TypeId = TypeId::of::<T>();
}
impl<T: Data> seal::Seal for T {}