使用旧 Rust 2015
0.2.0 |
|
---|---|
0.1.0 |
|
#182 in #unit
在 ranged_set 中使用
4KB
步进
step
是一个提供 Step
特质的包,允许对数值类型进行单位步进和任意步进。
文档可以在 docs.rs 上找到。
使用 step
将此包添加到 Cargo.toml 的依赖部分
[dependencies]
step = { git = "https://github.com/ryanq/step" }
然后导入包并在源代码中输入
extern crate step;
use step::Step;
然后您可以使用用于增加和减少数字的函数,或者在自己的类型上实现它
let number = 42;
assert_eq!(number.next(), 43);
assert_eq!(number.next_by(&3), 45);
assert_eq!(number.prev(), 41);
assert_eq!(number.prev_by(&3), 39);
struct Foo {
bar: i32,
}
impl Step for Foo {
fn next(&self) -> Self { Foo { bar: self.bar + 1 } }
fn next_by(&self, by: &Self) -> Self { Foo { bar: self.bar + *by } }
fn prev(&self) -> Self { Foo { bar: self.bar - 1 } }
fn prev_by(&self, by: &Self) -> Self { Foo { bar: self.bar - *by } }
}