2 个版本
使用旧的 Rust 2015
0.1.1 | 2018 年 9 月 10 日 |
---|---|
0.1.0 | 2018 年 9 月 2 日 |
1569 在 文本处理
11KB
216 行
微调
微调为您描述的状态中的上下文提供 when/then 子句。
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
tweak = "*"
示例
简单上下文操作。
extern crate tweak;
use tweak::Case;
struct XY {
x: i32,
y: i32,
}
impl XY {
fn new(x: i32, y: i32) -> Self {
Self { x, y }
}
}
let mut xy = XY::new(5, 0);
let res = Case::<XY, &str>::new("coords")
.when("x > 0", |xy| Ok(xy.x > 0))
.then_case("tweak x", |case| {
case.when("x == 5", |xy| Ok(xy.x == 5))
.then("multiply x by 3", |xy| {
xy.x *= 3;
Ok(())
})
.when("when x > 10", |xy| Ok(xy.x > 10))
.then("set x to 10", |xy| {
xy.x = 10;
Ok(())
})
})
.when("y > 0", |xy| Ok(xy.y > 0))
.then_case("tweak y", |case| {
case.when("y > 0", |xy| Ok(xy.y > 0))
.then("divide 10 by y", |xy| {
xy.y = 10 / xy.y;
Ok(())
})
})
.run(&mut xy);
assert_eq!(Ok(true), res);
assert_eq!(xy.x, 10);
assert_eq!(xy.y, 0);
许可证:MIT