FunMut

Trait FunMut 

Source
pub trait FunMut<T: HList>: FunOnce<T> {
    // Required method
    fn call_fun_mut(&mut self, args: T) -> Self::Output;
}
Expand description

Helper trait to use heterogenous lists as arguments for FnMuts.

TODO: remove or keep depending on https://github.com/rust-lang/rust/issues/29625

Required Methods§

Source

fn call_fun_mut(&mut self, args: T) -> Self::Output

Calls self using the elements of the given list as arguments.

§Examples
§On HCons
use tuplify::*;
let list = hcons![0, '1', "2"];
let mut value = String::new();
let mut func = |x: i32, y: char, z: &str| value = format!("{x} {y} {z}");

func.call_fun_mut(list);
assert_eq!(&value, "0 1 2");

Also works on functions taking no arguments:

use tuplify::*;
let mut value = String::new();
let mut func = || value = "hello".to_string();

func.call_fun_mut(HEmpty);
assert_eq!(&value, "hello");
§On tuples
use tuplify::*;
let list = (0, '1', "2");
let mut value = String::new();
let mut func = |x: i32, y: char, z: &str| value = format!("{x} {y} {z}");

func.call_fun_mut(list);
assert_eq!(&value, "0 1 2");

On a function taking no arguments:

use tuplify::*;
let mut value = String::new();
let mut func = || value = "hello".to_string();

func.call_fun_mut(());
assert_eq!(&value, "hello");

Implementors§

Source§

impl<H, T, F> FunMut<HCons<H, T>> for F
where T: HList, HCons<H, T>: IntoTuple, <HCons<H, T> as IntoTuple>::Output: HList, F: FunMut<<HCons<H, T> as IntoTuple>::Output>,

Source§

impl<O, F, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T23, T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T23, T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T24, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T24, T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T24, T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T25, T26, T27, T28, T29, T30, T31, T32> FunMut<(T25, T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T25, T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T26, T27, T28, T29, T30, T31, T32> FunMut<(T26, T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T26, T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T27, T28, T29, T30, T31, T32> FunMut<(T27, T28, T29, T30, T31, T32)> for F
where F: FnMut(T27, T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T28, T29, T30, T31, T32> FunMut<(T28, T29, T30, T31, T32)> for F
where F: FnMut(T28, T29, T30, T31, T32) -> O,

Source§

impl<O, F, T29, T30, T31, T32> FunMut<(T29, T30, T31, T32)> for F
where F: FnMut(T29, T30, T31, T32) -> O,

Source§

impl<O, F, T30, T31, T32> FunMut<(T30, T31, T32)> for F
where F: FnMut(T30, T31, T32) -> O,

Source§

impl<O, F, T31, T32> FunMut<(T31, T32)> for F
where F: FnMut(T31, T32) -> O,

Source§

impl<O, F, T32> FunMut<(T32,)> for F
where F: FnMut(T32) -> O,

Source§

impl<O, F: FnMut() -> O> FunMut<()> for F

Source§

impl<O, F: FnMut() -> O> FunMut<HEmpty> for F