3 releases
0.1.2 | Nov 23, 2023 |
---|---|
0.1.1 | Jul 4, 2023 |
0.1.0 | Jul 4, 2023 |
#2990 in Rust patterns
135 downloads per month
Used in 3 crates
(2 directly)
18KB
382 lines
Combines two functions into one where the arguments are conjoined and the return-values are given in a tuple pair.
Example
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));
Dependencies
~1.5MB
~36K SLoC