use std::marker;
#[repr(transparent)]
pub struct Stored<K: crate::depot::raw::Key> {
raw: K::Raw,
marker: Identity<K>,
}
impl<K: crate::depot::raw::Key> Stored<K> {
pub(in crate::depot) const unsafe fn new(raw: K::Raw) -> Self {
Self {
raw,
marker: marker::PhantomData,
}
}
pub fn into_raw(self) -> K::Raw {
self.raw
}
}
type Identity<K> = marker::PhantomData<(K, fn(K) -> K)>;