Enum ocl::enums::DeviceSpecifier [] [src]

pub enum DeviceSpecifier {
    All,
    First,
    Single(Device),
    List(Vec<Device>),
    Indices(Vec<usize>),
    WrappingIndices(Vec<usize>),
    TypeFlags(DeviceType),
}

Specifies [what boils down to] a list of devices.

The Indices variant is context-specific, not robust, and may lead to a panic if the context changes. It is useful for convenience only and not recommended for general use. The WrappingIndices variant is somewhat less dangerous but can still be somewhat machine-specific.

The TypeFlags variant is used for specifying a list of devices using a bitfield (DeviceType) and is the most robust / portable.

[FIXME: Add some links to the SDK]

Variants

Methods

impl DeviceSpecifier
[src]

Returns a DeviceSpecifier::All variant which specifies all devices on a platform.

Returns a DeviceSpecifier::First variant which specifies only the first device on a platform.

Returns a DeviceSpecifier::Single variant which specifies a single device.

Returns a DeviceSpecifier::List variant which specifies a list of devices.

Returns a DeviceSpecifier::Indices variant which specifies a list of devices by index.

Safety

This variant is context-specific, not robust, and may lead to a panic if the context changes. It is useful for convenience only and not recommended for general use.

Though using the Indices variant is not strictly unsafe in the usual way (will not lead to memory bugs, etc.), it is marked unsafe as a warning. Recommendations for a more idiomatic way to express this potential footgun are welcome.

Using ::wrapping_indices is a more robust (but still potentially non-portable) solution.

Returns a DeviceSpecifier::WrappingIndices variant, specifying a list of devices by indices which are wrapped around (simply using the modulo operator) so that every index is always valid.

Returns a DeviceSpecifier::TypeFlags variant which specifies a list of devices using a conventional bitfield.

Returns the list of devices matching the parameters specified by this DeviceSpecifier

Panics

Any device indices listed within the Indices variant must be within the range of the number of devices for the platform specified by Platform. If no platform has been specified, this behaviour is undefined and could end up using any platform at all.

Trait Implementations

impl Debug for DeviceSpecifier
[src]

Formats the value using the given formatter.

impl Clone for DeviceSpecifier
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Default for DeviceSpecifier
[src]

Returns the "default value" for a type. Read more

impl From<usize> for DeviceSpecifier
[src]

Performs the conversion.

impl<'a> From<&'a [usize]> for DeviceSpecifier
[src]

Performs the conversion.

impl<'a> From<&'a Vec<usize>> for DeviceSpecifier
[src]

Performs the conversion.

impl<'a> From<&'a [Device]> for DeviceSpecifier
[src]

Performs the conversion.

impl<'a> From<&'a Vec<Device>> for DeviceSpecifier
[src]

Performs the conversion.

impl From<Device> for DeviceSpecifier
[src]

Performs the conversion.

impl<'a> From<&'a Device> for DeviceSpecifier
[src]

Performs the conversion.

impl From<DeviceType> for DeviceSpecifier
[src]

Performs the conversion.