# Struct ndarray::Si [−] [src]

`pub struct Si(pub Ixs, pub Option<Ixs>, pub Ixs);`

A slice, a description of a range of an array axis.

Fields are `begin`, `end` and `stride`, where negative `begin` or `end` indexes are counted from the back of the axis.

If `end` is `None`, the slice extends to the end of the axis.

See also the `s![] macro`, a convenient way to specify an array of `Si`.

## Examples

`Si(0, None, 1)` is the full range of an axis. Python equivalent is `[:]`. Macro equivalent is `s![..]`.

`Si(a, Some(b), 2)` is every second element from `a` until `b`. Python equivalent is `[a:b:2]`. Macro equivalent is `s![a..b;2]`.

`Si(a, None, -1)` is every element, from `a` until the end, in reverse order. Python equivalent is `[a::-1]`. Macro equivalent is `s![a..;-1]`.

The constant `S` is a shorthand for the full range of an axis.

## Trait Implementations

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

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

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

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

This method tests for `!=`.

### `impl Hash for Si`[src]

#### `fn hash<__H: Hasher>(&self, __arg_0: &mut __H)`[src]

Feeds this value into the given [`Hasher`]. Read more

#### `fn hash_slice<H>(data: &[Self], state: &mut H) where    H: Hasher, `1.3.0[src]

Feeds a slice of this type into the given [`Hasher`]. Read more

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

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

Formats the value using the given formatter.

### `impl From<Range<Ixs>> for Si`[src]

#### `fn from(r: Range<Ixs>) -> Si`[src]

Performs the conversion.

### `impl From<RangeFrom<Ixs>> for Si`[src]

#### `fn from(r: RangeFrom<Ixs>) -> Si`[src]

Performs the conversion.

### `impl From<RangeTo<Ixs>> for Si`[src]

#### `fn from(r: RangeTo<Ixs>) -> Si`[src]

Performs the conversion.

### `impl From<RangeFull> for Si`[src]

#### `fn from(_: RangeFull) -> Si`[src]

Performs the conversion.

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

#### `fn clone(&self) -> Self`[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