use crate::{Prm};
pub trait Buffer<T: Prm>: Sized + Clone {
type Context;
unsafe fn new_uninit_in(context: &Self::Context, len: usize) -> Self;
fn new_filled_in(context: &Self::Context, len: usize, value: T) -> Self;
fn len(&self) -> usize;
fn context(&self) -> &Self::Context;
fn load(&self, dst: &mut [T]);
fn store(&mut self, src: &[T]);
fn copy_from(&mut self, src: &Self);
fn copy_to(&self, dst: &mut Self);
}