#tuple #fn #call


call functions and closures with tuple of arguments

3 stable releases

1.2.0 May 11, 2022
1.1.0 May 10, 2022
1.0.0 Apr 29, 2022

#2251 in Rust patterns

21 downloads per month

MIT license

162 lines


Crates.io docs.rs GitHub license GitHub stars

This crate provides [TupleFnOnce], [TupleFnMut] and [TupleFn], corresponding to [FnOnce], [FnMut] and [Fn].

[TupleFnOnce], [TupleFnMut] and [TupleFn] enables functions or closures to be called with a tuple of arguments. For example:

use tuple_fn::*;

fn add(a: i32, b: i32) -> i32 {
    a + b

let sum = add.call_with_args_tuple((1, 2));
assert_eq!(sum, 3);

These three traits should be named as FnOnceCallWithArgsTupleExt, FnMutCallWithArgsTupleExt, FnCallWithArgsTupleExt by convention, because they are implemented for all corresponding FnOnce, FnMut, Fn types and act like extension traits. They are named as TupleFn* just for simplicity.

No runtime deps