Trait std::iter::Step [−][src]
pub trait Step: PartialOrd<Self> + Clone { 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