Struct tract_core::internal::tract_ndarray::Slice
source · [−]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
sourceimpl 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.)
Trait Implementations
sourceimpl From<RangeInclusive<i32>> for Slice
impl From<RangeInclusive<i32>> for Slice
sourcefn from(r: RangeInclusive<i32>) -> Slice
fn from(r: RangeInclusive<i32>) -> Slice
sourceimpl From<RangeInclusive<isize>> for Slice
impl From<RangeInclusive<isize>> for Slice
sourcefn from(r: RangeInclusive<isize>) -> Slice
fn from(r: RangeInclusive<isize>) -> Slice
sourceimpl From<RangeInclusive<usize>> for Slice
impl From<RangeInclusive<usize>> for Slice
sourcefn from(r: RangeInclusive<usize>) -> Slice
fn from(r: RangeInclusive<usize>) -> Slice
sourceimpl From<RangeToInclusive<i32>> for Slice
impl From<RangeToInclusive<i32>> for Slice
sourcefn from(r: RangeToInclusive<i32>) -> Slice
fn from(r: RangeToInclusive<i32>) -> Slice
sourceimpl From<RangeToInclusive<isize>> for Slice
impl From<RangeToInclusive<isize>> for Slice
sourcefn from(r: RangeToInclusive<isize>) -> Slice
fn from(r: RangeToInclusive<isize>) -> Slice
sourceimpl From<RangeToInclusive<usize>> for Slice
impl From<RangeToInclusive<usize>> for Slice
sourcefn from(r: RangeToInclusive<usize>) -> Slice
fn from(r: RangeToInclusive<usize>) -> Slice
sourceimpl From<Slice> for SliceInfoElem
impl From<Slice> for SliceInfoElem
sourcefn from(s: Slice) -> SliceInfoElem
fn from(s: Slice) -> SliceInfoElem
impl Copy for Slice
impl Eq for Slice
impl StructuralEq for Slice
impl StructuralPartialEq for Slice
Auto Trait Implementations
impl RefUnwindSafe for Slice
impl Send for Slice
impl Sync for Slice
impl Unpin for Slice
impl UnwindSafe for Slice
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more