use crate::buf::StructPadder;
use crate::traits::ZeroCopy;
mod sealed {
#[cfg(feature = "alloc")]
use crate::pointer::Size;
pub trait Sealed {}
#[cfg(feature = "alloc")]
impl<O: Size> Sealed for crate::buf::AlignedBuf<O> {}
impl<B: ?Sized> Sealed for &mut B where B: Sealed {}
impl Sealed for crate::buf::RawBufMut {}
}
pub trait BufMut: self::sealed::Sealed {
unsafe fn store_bytes(&mut self, bytes: &[u8]);
unsafe fn store_bits<T>(&mut self, value: T)
where
T: ZeroCopy;
unsafe fn store<T>(&mut self, value: &T)
where
T: ZeroCopy;
unsafe fn store_struct<T>(&mut self, value: &T) -> StructPadder<'_, T>
where
T: ZeroCopy;
unsafe fn store_array<T>(&mut self, values: &[T])
where
T: ZeroCopy;
}