core::iter::Step - Rust
Description: API documentation for the Rust `Step` trait in crate `core`.
Keywords: rust, rustlang, rust-lang, Step

# [−][src]Trait core::iter::Step

    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>;

        fn sub_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

Adds a `usize`, returning `None` on overflow.

Loading content...

## Provided methods

### `fn sub_usize(&self, n: usize) -> Option<Self>`

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

Subtracts a `usize`, returning `None` on underflow.

Loading content...

## Implementors

### `impl Step for i8`[src]

#### `fn steps_between(start: &i8, end: &i8) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for i16`[src]

#### `fn steps_between(start: &i16, end: &i16) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for i32`[src]

#### `fn steps_between(start: &i32, end: &i32) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for i64`[src]

#### `fn steps_between(start: &i64, end: &i64) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for i128`[src]

#### `fn steps_between(start: &i128, end: &i128) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for isize`[src]

#### `fn steps_between(start: &isize, end: &isize) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for u8`[src]

#### `fn steps_between(start: &u8, end: &u8) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for u16`[src]

#### `fn steps_between(start: &u16, end: &u16) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for u32`[src]

#### `fn steps_between(start: &u32, end: &u32) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for u64`[src]

#### `fn steps_between(start: &u64, end: &u64) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for u128`[src]

#### `fn steps_between(start: &u128, end: &u128) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

### `impl Step for usize`[src]

#### `fn steps_between(start: &usize, end: &usize) -> Option<usize>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_usize(&self, n: usize) -> Option<Self>`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_one(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn replace_zero(&mut self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn add_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

#### `fn sub_one(&self) -> Self`[src]

🔬 This is a nightly-only experimental API. (`step_trait` #42168)

likely to be replaced by finer-grained traits

Loading content...