use core::marker::PhantomData;
#[derive(Clone, Copy)]
pub(crate) struct Brand<'brand> {
_marker: PhantomData<&'brand mut &'brand ()>,
}
#[derive(Clone, Copy)]
pub(crate) struct Guard<'brand> {
_marker: PhantomData<&'brand mut &'brand ()>,
}
impl<'brand> Guard<'brand> {
#[inline]
pub(crate) const fn new() -> Self {
Self {
_marker: PhantomData,
}
}
}
#[derive(Clone, Copy)]
pub(crate) struct Owner<'brand> {
_brand: Guard<'brand>,
}
impl<'brand> Owner<'brand> {
#[inline]
pub(crate) fn new(brand: Guard<'brand>) -> Self {
Self { _brand: brand }
}
}