Trait Step

Source
pub trait Step: Sized {
    // Required methods
    fn next(&self) -> Option<Self>;
    fn next_by(&self, by: &Self) -> Option<Self>;
    fn prev(&self) -> Option<Self>;
    fn prev_by(&self, by: &Self) -> Option<Self>;
    fn steps_to(&self, value: &Self) -> Self;
}
Expand description

Types that can be incremented or decremented by a unit value or a given value.

Required Methods§

Source

fn next(&self) -> Option<Self>

Return the next sequential value for the type

Source

fn next_by(&self, by: &Self) -> Option<Self>

Return the value a given amount after the value

Source

fn prev(&self) -> Option<Self>

Return the previous sequential value for the type

Source

fn prev_by(&self, by: &Self) -> Option<Self>

Return the value a given amount before the value

Source

fn steps_to(&self, value: &Self) -> Self

Return the steps to another value

The return value will be the number of steps between the two values (i.e. it will always be a positive number).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Step for i8

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for i16

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for i32

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for i64

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for isize

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for u8

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for u16

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for u32

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for u64

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Source§

impl Step for usize

Source§

fn next(&self) -> Option<Self>

Source§

fn next_by(&self, by: &Self) -> Option<Self>

Source§

fn prev(&self) -> Option<Self>

Source§

fn prev_by(&self, by: &Self) -> Option<Self>

Source§

fn steps_to(&self, value: &Self) -> Self

Implementors§