mod non_volatile;
mod volatile;
pub use non_volatile::WriteOnlySlice;
pub use volatile::VolatileWriteOnlySlice;
pub trait PutAt<T> {
fn put_at(&mut self, index: usize, value: T);
unsafe fn put_at_unchecked(&mut self, index: usize, value: T);
}
pub trait PutFromSliceAt<T>: PutAt<T> {
fn put_cloning_from_slice_at(&mut self, src: &[T], offset: usize)
where
T: Clone;
}
pub trait WriteAt<T> {
fn write_at(&mut self, index: usize, value: T);
unsafe fn write_at_unchecked(&mut self, index: usize, value: T);
}
pub trait WriteFromSliceAt<T>: WriteAt<T> {
fn write_cloning_from_slice_at(&mut self, src: &[T], offset: usize)
where
T: Clone;
fn write_copying_from_slice_at(&mut self, src: &[T], offset: usize)
where
T: Copy;
}