Trait core::iter::Step [−][src]
pub trait Step: Clone + PartialOrd + Sized { fn steps_between(start: &Self, end: &Self) -> Option<usize>; fn replace_one(&mut self) -> Self; fn replace_zero(&mut self) -> Self; fn add_one(&self) -> Self; fn sub_one(&self) -> Self; fn add_usize(&self, n: usize) -> Option<Self>; }
🔬 This is a nightly-only experimental API. (step_trait
#42168)
likely to be replaced by finer-grained traits
Objects that can be stepped over in both directions.
The steps_between
function provides a way to efficiently compare
two Step
objects.
Required Methods
fn steps_between(start: &Self, end: &Self) -> Option<usize>
🔬 This is a nightly-only experimental API. (step_trait
#42168)
likely to be replaced by finer-grained traits
Returns the number of steps between two step objects. The count is
inclusive of start
and exclusive of end
.
Returns None
if it is not possible to calculate steps_between
without overflow.
fn replace_one(&mut self) -> Self
🔬 This is a nightly-only experimental API. (step_trait
#42168)
likely to be replaced by finer-grained traits
Replaces this step with 1
, returning itself
fn replace_zero(&mut self) -> Self
🔬 This is a nightly-only experimental API. (step_trait
#42168)
likely to be replaced by finer-grained traits
Replaces this step with 0
, returning itself
fn add_one(&self) -> Self
🔬 This is a nightly-only experimental API. (step_trait
#42168)
likely to be replaced by finer-grained traits
Adds one to this step, returning the result
fn sub_one(&self) -> Self
🔬 This is a nightly-only experimental API. (step_trait
#42168)
likely to be replaced by finer-grained traits
Subtracts one to this step, returning the result
fn add_usize(&self, n: usize) -> Option<Self>
🔬 This is a nightly-only experimental API. (step_trait
#42168)
likely to be replaced by finer-grained traits
Add an usize, returning None on overflow
Implementors
impl Step for usize
impl Step for u8
impl Step for u16
impl Step for u32
impl Step for isize
impl Step for i8
impl Step for i16
impl Step for i32
impl Step for u64
impl Step for i64
impl Step for u128
impl Step for i128