Buffer

Trait Buffer 

Source
pub trait Buffer<T>: Clone {
    // Required methods
    fn name(&self) -> &'static str;
    fn size(&self) -> usize;
    fn slice(&self, offset: usize, size: usize) -> Self;
    fn get_at(&self, idx: usize) -> T;
    fn view<F: FnOnce(&[T])>(&self, f: F);
    fn view_mut<F: FnOnce(&mut [T])>(&self, f: F);
    fn to_vec(&self) -> Vec<T>;
}
Available on crate feature prove only.

Required Methods§

Source

fn name(&self) -> &'static str

Source

fn size(&self) -> usize

Source

fn slice(&self, offset: usize, size: usize) -> Self

Source

fn get_at(&self, idx: usize) -> T

Source

fn view<F: FnOnce(&[T])>(&self, f: F)

Source

fn view_mut<F: FnOnce(&mut [T])>(&self, f: F)

Source

fn to_vec(&self) -> Vec<T>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T, L, R> Buffer<T> for BufferImpl<T, L, R>
where T: Clone + Debug + PartialEq, L: Buffer<T>, R: Buffer<T>,

Source§

impl<T: Clone> Buffer<T> for CpuBuffer<T>