Trait collenchyma::framework::IFramework [] [src]

pub trait IFramework {
    type H: IHardware;
    type D: IDevice + Clone;
    type B: IBinary + Clone;
    fn ID() -> &'static str;
    fn new() -> Self where Self: Sized;
    fn load_hardwares() -> Result<Vec<Self::H>, Error>;
    fn hardwares(&self) -> &[Self::H];
    fn binary(&self) -> &Self::B;
    fn new_device(&self, &[Self::H]) -> Result<DeviceType, Error>;
}

Defines a Framework.

Associated Types

type H: IHardware

The Hardware representation for this Framework.

type D: IDevice + Clone

The Device representation for this Framework.

type B: IBinary + Clone

The Binary representation for this Framework.

Required Methods

fn ID() -> &'static str

Defines the Framework by a Name.

For convention, let the ID be uppercase.
EXAMPLE: OPENCL

fn new() -> Self where Self: Sized

Initializes a new Framework.

Loads all the available hardwares

fn load_hardwares() -> Result<Vec<Self::H>, Error>

Initializes all the available hardwares.

fn hardwares(&self) -> &[Self::H]

Returns the cached and available hardwares.

fn binary(&self) -> &Self::B

Returns the initialized binary.

fn new_device(&self, &[Self::H]) -> Result<DeviceType, Error>

Initializes a new Device from the provided hardwares.

Implementors