In Rust documentation there's the Step trait. How does it work and what is it used for?
According to the tracking issue:
The
step_by
method makes it possible to step through ranges with arbitrary-sized steps.
https://github.com/rust-lang/rust/issues/27741
https://github.com/rust-lang/rust/issues/42168
Currently it looks like a bit of a mess and it is all unstable to use. The steps_between
function feels a lot like C++ where it isn't uncommon to compare iterators since in many data structures they are just fat-pointers to some form of array/vector. However it kinda messes up the trait a bit since it only makes sense for some types of collections. For example, a hash map might benefit from the step forward and backward functions, but may be unable to implement steps_between
. Since the Iterator
trait already covers a lot of this functionality and there has been no recent activity on the tracking issue, I imagine this will be deprecated and removed.
If you click the Source button in the docs and look at the trait, you can see it is tagged with unstable. The important part is that it lists the issue number.
#[unstable(feature = "step_trait", reason = "recently redesigned", issue = "42168")]
pub trait Step: Clone + PartialOrd + Sized {
// etc
}
I can then find the tracking issue for this trait by either adding it to the end of the https://github.com/rust-lang/rust/issues/{issue number}
url or searching for it in the issues section of the Rust GitHub repository.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With