Trait StepExt

Source
pub trait StepExt: Step {
    // Provided methods
    fn iter() -> RangeIter<Self> 
       where Self: Sized { ... }
    fn iter_to(self, to: Self) -> RangeIter<Self> 
       where Self: Sized { ... }
    fn iter_to_inclusive(self, to: Self) -> RangeIter<Self> 
       where Self: Sized { ... }
}
Expand description

Provide helper methods on types implementing Step

Provided Methods§

Source

fn iter() -> RangeIter<Self>
where Self: Sized,

Produce an iterator over Self’s full range

Examples found in repository?
examples/basic.rs (line 48)
46fn main() {
47    println!("All");
48    for value in MyEnum::iter() {
49        println!("{:?}", value);
50    }
51
52    println!("Subset");
53    for value in MyEnum::B.iter_to(MyEnum::E) {
54        println!("{:?}", value);
55    }
56
57    println!("Reversed");
58    for value in MyEnum::B.iter_to_inclusive(MyEnum::E).rev() {
59        println!("{:?}", value);
60    }
61}
Source

fn iter_to(self, to: Self) -> RangeIter<Self>
where Self: Sized,

Iterate from Self to to, non-inclusive

Examples found in repository?
examples/basic.rs (line 53)
46fn main() {
47    println!("All");
48    for value in MyEnum::iter() {
49        println!("{:?}", value);
50    }
51
52    println!("Subset");
53    for value in MyEnum::B.iter_to(MyEnum::E) {
54        println!("{:?}", value);
55    }
56
57    println!("Reversed");
58    for value in MyEnum::B.iter_to_inclusive(MyEnum::E).rev() {
59        println!("{:?}", value);
60    }
61}
Source

fn iter_to_inclusive(self, to: Self) -> RangeIter<Self>
where Self: Sized,

Iterate from Self to to, inclusive

Examples found in repository?
examples/basic.rs (line 58)
46fn main() {
47    println!("All");
48    for value in MyEnum::iter() {
49        println!("{:?}", value);
50    }
51
52    println!("Subset");
53    for value in MyEnum::B.iter_to(MyEnum::E) {
54        println!("{:?}", value);
55    }
56
57    println!("Reversed");
58    for value in MyEnum::B.iter_to_inclusive(MyEnum::E).rev() {
59        println!("{:?}", value);
60    }
61}

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.

Implementors§

Source§

impl<S> StepExt for S
where S: Step,