Read

Trait Read 

Source
pub trait Read<T, D = Self, S = ()>: Device
where D: Device, S: Shape,
{ type Read<'a> where T: 'a, D: 'a, S: 'a; // Required methods fn read<'a>(&self, buf: &'a Buffer<'_, T, D, S>) -> Self::Read<'a>; fn read_to_vec(&self, buf: &Buffer<'_, T, D, S>) -> Vec<T> where T: Default + Clone; }
Expand description

Trait for reading buffers.

Required Associated Types§

Source

type Read<'a> where T: 'a, D: 'a, S: 'a

Required Methods§

Source

fn read<'a>(&self, buf: &'a Buffer<'_, T, D, S>) -> Self::Read<'a>

Read the data of the Buffer as type Read.

§Example
use custos::{CPU, Buffer, Read};

let device = CPU::new();
let a = Buffer::from((&device, [1., 2., 3., 3., 2., 1.,]));
let read = device.read(&a);
assert_eq!(&[1., 2., 3., 3., 2., 1.,], read);
Source

fn read_to_vec(&self, buf: &Buffer<'_, T, D, S>) -> Vec<T>
where T: Default + Clone,

Read the data of a buffer into a vector

§Example
use custos::{CPU, Buffer, Read};

let device = CPU::new();
let a = Buffer::from((&device, [1., 2., 3., 3., 2., 1.,]));
let read = device.read_to_vec(&a);
assert_eq!(vec![1., 2., 3., 3., 2., 1.,], read);

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> Read<T> for OpenCL
where T: Clone + Default,

Source§

type Read<'a> = Vec<T> where T: 'a

Source§

impl<T, D, S> Read<T, D, S> for CPU
where D: MainMemory, S: Shape,

Source§

type Read<'a> = &'a [T] where T: 'a, D: 'a, S: 'a