pub trait Buffer<T>: Clone {
fn size(&self) -> usize;
fn slice(&self, offset: usize, size: usize) -> Self;
fn view<F: FnOnce(&[T])>(&self, f: F);
fn view_mut<F: FnOnce(&mut [T])>(&self, f: F);
}
pub trait Buffer<T>: Clone {
fn size(&self) -> usize;
fn slice(&self, offset: usize, size: usize) -> Self;
fn view<F: FnOnce(&[T])>(&self, f: F);
fn view_mut<F: FnOnce(&mut [T])>(&self, f: F);
}