#zip #function #called #traits #combined #compile-time #allowing

nightly fn_zip

为函数提供zip trait,允许在调用之前在编译时将两个函数组合起来

3个版本

0.1.2 2023年11月23日
0.1.1 2023年7月4日
0.1.0 2023年7月4日

#2273Rust模式

每月 24 次下载
4 个crate(2个直接)中使用

MIT 许可证

18KB
382

将两个函数合并为一个,其中参数连接,返回值以元组对的形式给出。

示例

use fn_zip::FnZip;

fn a(x: f32) -> f64
{
    (x as f64).sqrt()
}
fn b(x: u8) -> u8
{
    x + 1
}
let ab = a.fn_zip(b); // (f32, u8) -> (f64, u8)

let (x_a, x_b) = (4.0, 23);

let (y_a, y_b) = ab(x_a, x_b);

assert_eq!(y_a, a(x_a));
assert_eq!(y_b, b(x_b));

依赖项

~1.5MB
~35K SLoC