# Enum ocl::SpatialDims [−] [src]

    pub enum SpatialDims {
        Unspecified,
        One(usize),
        Two(usize, usize),
        Three(usize, usize, usize),
    }

Specifies a size or offset in up to three dimensions.

Using `SpatialDims` to specify dimensions for your application may not be appropriate. Custom types implementing the traits `MemLen` and `WorkDims` should be created to express more complex relationships between data shape and work size for kernels which do not have a 1:1 correspondence between data set length and global work size.

[FIXME]: Describe the ways a `SpatialDims` can be created using various `From` implementations.

[UNSTABLE]: This type and its methods may be renamed or otherwise changed at any time. This is still a work in progress.

## Variants

`Unspecified` `One(usize)` `Two(usize, usize)` `Three(usize, usize, usize)`

## Methods

### `impl SpatialDims`
[src]

#### `pub fn new(
d0: Option<usize>,
d1: Option<usize>,
d2: Option<usize>
) -> OclResult<SpatialDims>`
[src]

Returns a new `SpatialDims`.

Dimensions must be specified in order from d0 -> d1 -> d2; i.e. `d1` cannot be `Some(x)` if `d0` is `None`.

Explicitly setting all zeros as values is not recommended as it is invalid to OpenCL functions. Use `::Unspecified` to represent `NULL` instead.

#### `pub fn dim_count(&self) -> u32`
[src]

Returns the number of dimensions defined by this `SpatialDims`.

#### `pub fn to_lens(&self) -> Result<[usize; 3], UnspecifiedDimensionsError>`
[src]

Returns a 3D size or an error if unspecified.

#### `pub fn to_offset(&self) -> Result<[usize; 3], UnspecifiedDimensionsError>`
[src]

Returns a 3D offset or an error if unspecified.

#### `pub fn to_len(&self) -> usize`
[src]

Returns the product of all contained dimensional values (equivalent to a length, area, or volume) or zero if unspecified.

Check `::is_unspecified` if it matters whether or not the zero length has been explicitly set however, explicitly setting all zeros as dimensions is not recommended as it is an invalid value to OpenCL functions. Use `::Unspecified` to represent `NULL` instead.

#### `pub fn try_to_padded_len(&self, incr: usize) -> OclResult<usize>`
[src]

Takes the length and rounds it up to the nearest `incr` or an error.

#### `pub fn is_unspecified(&self) -> bool`
[src]

Returns `true` if this `SpatialDims` is an `Unspecified` variant.

## Trait Implementations

### `impl Clone for SpatialDims`
[src]

#### `fn clone(&self) -> SpatialDims`
[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`
1.0.0
[src]

Performs copy-assignment from `source`. Read more

### `impl Debug for SpatialDims`
[src]

#### `fn fmt(&self, __arg_0: &mut Formatter) -> Result`
[src]

Formats the value using the given formatter. Read more

### `impl Copy for SpatialDims`
[src]

### `impl PartialEq for SpatialDims`
[src]

#### `fn eq(&self, __arg_0: &SpatialDims) -> bool`
[src]

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

#### `fn ne(&self, __arg_0: &SpatialDims) -> bool`
[src]

This method tests for `!=`.

### `impl Eq for SpatialDims`
[src]

### `impl MemLen for SpatialDims`
[src]

#### `fn to_len_padded(&self, incr: usize) -> usize`
[src]

Returns the length of a volume of memory padded to the next multiple of `incr`. Read more

#### `fn to_len(&self) -> usize`
[src]

Returns the exact number of elements of a volume of memory (equivalent to `Vec::len()`). Read more

#### `fn to_lens(&self) -> [usize; 3]`
[src]

Returns the exact lengths of each dimension of a volume of memory.

### `impl WorkDims for SpatialDims`
[src]

#### `fn dim_count(&self) -> u32`
[src]

Returns the number of dimensions defined.

#### `fn to_work_size(&self) -> Option<[usize; 3]>`
[src]

Returns an array representing the amount of work to be done by a kernel. Read more

#### `fn to_work_offset(&self) -> Option<[usize; 3]>`
[src]

Returns an array representing the offset of a work item or memory location. Read more

### `impl Index<usize> for SpatialDims`
[src]

#### `type Output = usize`

The returned type after indexing.

#### `fn index(&self, index: usize) -> &usize`
[src]

Performs the indexing (`container[index]`) operation.

### `impl<'a> From<&'a SpatialDims> for SpatialDims`
[src]

#### `fn from(sd: &'a SpatialDims) -> SpatialDims`
[src]

Performs the conversion.

### `impl From<usize> for SpatialDims`
[src]

#### `fn from(val: usize) -> SpatialDims`
[src]

Performs the conversion.

### `impl From<isize> for SpatialDims`
[src]

#### `fn from(val: isize) -> SpatialDims`
[src]

Performs the conversion.

### `impl From<u32> for SpatialDims`
[src]

#### `fn from(val: u32) -> SpatialDims`
[src]

Performs the conversion.

### `impl From<i32> for SpatialDims`
[src]

#### `fn from(val: i32) -> SpatialDims`
[src]

Performs the conversion.

### `impl<T: Num + ToPrimitive + Debug + Copy> From<(T,)> for SpatialDims`
[src]

#### `fn from(val: (T,)) -> SpatialDims`
[src]

Performs the conversion.

### `impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a (T,)> for SpatialDims`
[src]

#### `fn from(val: &(T,)) -> SpatialDims`
[src]

Performs the conversion.

### `impl<T: Num + ToPrimitive + Debug + Copy> From<[T; 1]> for SpatialDims`
[src]

#### `fn from(val: [T; 1]) -> SpatialDims`
[src]

Performs the conversion.

### `impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a [T; 1]> for SpatialDims`
[src]

#### `fn from(val: &[T; 1]) -> SpatialDims`
[src]

Performs the conversion.

### `impl<T: Num + ToPrimitive + Debug + Copy> From<(T, T)> for SpatialDims`
[src]

#### `fn from(pair: (T, T)) -> SpatialDims`
[src]

Performs the conversion.

### `impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a (T, T)> for SpatialDims`
[src]

#### `fn from(pair: &(T, T)) -> SpatialDims`
[src]

Performs the conversion.

### `impl<T: Num + ToPrimitive + Debug + Copy> From<[T; 2]> for SpatialDims`
[src]

#### `fn from(pair: [T; 2]) -> SpatialDims`
[src]

Performs the conversion.

### `impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a [T; 2]> for SpatialDims`
[src]

#### `fn from(pair: &[T; 2]) -> SpatialDims`
[src]

Performs the conversion.

### `impl<T: Num + ToPrimitive + Debug + Copy> From<(T, T, T)> for SpatialDims`
[src]

#### `fn from(set: (T, T, T)) -> SpatialDims`
[src]

Performs the conversion.

### `impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a (T, T, T)> for SpatialDims`
[src]

#### `fn from(set: &(T, T, T)) -> SpatialDims`
[src]

Performs the conversion.

### `impl<T: Num + ToPrimitive + Debug + Copy> From<[T; 3]> for SpatialDims`
[src]

#### `fn from(set: [T; 3]) -> SpatialDims`
[src]

Performs the conversion.

### `impl<'a, T: Num + ToPrimitive + Debug + Copy> From<&'a [T; 3]> for SpatialDims`
[src]

#### `fn from(set: &[T; 3]) -> SpatialDims`
[src]

Performs the conversion.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)