pub struct Slice {
pub start: isize,
pub end: Option<isize>,
pub step: isize,
}
Expand description
A slice (range with step size).
end
is an exclusive index. Negative start
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.
Examples
Slice::new(0, None, 1)
is the full range of an axis. It can also be
created with Slice::from(..)
. The Python equivalent is [:]
.
Slice::new(a, b, 2)
is every second element from a
until b
. It can
also be created with Slice::from(a..b).step_by(2)
. The Python equivalent
is [a:b:2]
.
Slice::new(a, None, -1)
is every element, from a
until the end, in
reverse order. It can also be created with Slice::from(a..).step_by(-1)
.
The Python equivalent is [a::-1]
.
Fields§
§start: isize
start index; negative are counted from the back of the axis
end: Option<isize>
end index; negative are counted from the back of the axis; when not present the default is the full length of the axis.
step: isize
step size in elements; the default is 1, for every element.
Implementations§
source§impl Slice
impl Slice
sourcepub fn new(start: isize, end: Option<isize>, step: isize) -> Slice
pub fn new(start: isize, end: Option<isize>, step: isize) -> Slice
Create a new Slice
with the given extents.
See also the From
impls, converting from ranges; for example
Slice::from(i..)
or Slice::from(j..k)
.
step
must be nonzero.
(This method checks with a debug assertion that step
is not zero.)