3 个版本
0.1.2 | 2020 年 5 月 11 日 |
---|---|
0.1.1 | 2020 年 5 月 11 日 |
0.1.0 | 2020 年 5 月 11 日 |
#2928 在 Rust 模式
28KB
287 行
fn_trait 库
此 trait 提供名为 chain
的辅助函数和宏,用于简化函数链的创建,其中第一个函数的输出直接作为下一个函数的输入,依此类推。
用法 1 - 宏 chain
use fn_chain::chain;
fn simple_add(a : i32, b : i32, c : i32) -> i32 {
a + b + c
}
fn pass_through(v : f64) -> f64 {
v
}
assert_eq!(
6f64,
chain!(
simple_add(1, 2, 3),
|result: i32| {(result as f64).powi(2)},
|sqr: f64| {sqr.powf(0.5)},
pass_through,
pass_through
)
);
用法 2 - 函数 chain
use fn_chain::chain;
fn simple_add(a : i32, b : i32, c : i32) -> i32 {
a + b + c
}
fn pass_through(v : f64) -> f64 {
v
}
assert_eq!(6f64, *chain(simple_add(1, 2, 3))
.chain(|result| {(result as f64).powi(2)})
.chain(|sqr| sqr.powf(0.5))
.chain(pass_through)
.chain(pass_through));