use crate::buf::Buf;
use crate::error::Error;
mod sealed {
use crate::endian::ByteOrder;
use crate::pointer::Size;
use crate::traits::ZeroCopy;
pub trait Sealed {}
impl<K, V, E: ByteOrder, O: Size> Sealed for crate::phf::map::MapRef<K, V, E, O>
where
K: ZeroCopy,
V: ZeroCopy,
{
}
impl<K, V, E: ByteOrder, O: Size> Sealed for crate::swiss::map::MapRef<K, V, E, O>
where
K: ZeroCopy,
V: ZeroCopy,
{
}
impl<T, E: ByteOrder, O: Size> Sealed for crate::phf::set::SetRef<T, E, O> where T: ZeroCopy {}
impl<T, E: ByteOrder, O: Size> Sealed for crate::swiss::set::SetRef<T, E, O> where T: ZeroCopy {}
}
pub trait Bindable: self::sealed::Sealed {
type Bound<'a>
where
Self: 'a;
fn bind(self, buf: &Buf) -> Result<Self::Bound<'_>, Error>;
}