Trait collenchyma::device::IDevice [] [src]

pub trait IDevice {
    type H: IHardware;
    type M: IMemory;
    fn id(&self) -> &isize;
    fn hardwares(&self) -> &Vec<Self::H>;
    fn alloc_memory(&self, size: usize) -> Result<Self::M, Error>;
    fn sync_in(&self, source: &DeviceType, source_data: &MemoryType, dest_data: &mut Self::M) -> Result<(), Error>;
}

Specifies Hardware behavior across frameworks.

Associated Types

type H: IHardware

The Hardware representation for this Device.

type M: IMemory

The Memory representation for this Device.

Required Methods

fn id(&self) -> &isize

Returns the unique identifier of the Device.

fn hardwares(&self) -> &Vec<Self::H>

Returns the hardwares, which define the Device.

fn alloc_memory(&self, size: usize) -> Result<Self::M, Error>

Allocate memory on the Device.

fn sync_in(&self, source: &DeviceType, source_data: &MemoryType, dest_data: &mut Self::M) -> Result<(), Error>

Synchronize memory from source_data to the memory at dest_data.

Defines how data is synchronized into the device. All Frameworks, except Native(host), are also defining a sync_out method.

Implementors