#![cfg_attr(not(feature = "std"), no_std)]
#![crate_name = "phanta"]
#[cfg(feature = "alloc")]
extern crate alloc;
use core::marker::PhantomData;
#[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd,)]
pub struct Class<K> {
_cls: PhantomData<K>
}
impl<K> Class<K> {
pub fn new() -> Self {
Self {
_cls: PhantomData::<K>,
}
}
}
pub trait InitPhantom {
fn phantom() -> PhantomData<Self> {
PhantomData::<Self>
}
fn is_type<T>() -> bool {
core::any::type_name::<Self>() == core::any::type_name::<T>()
}
}
impl<T> InitPhantom for T {}
pub mod prelude {}