Callable

Trait Callable 

Source
pub trait Callable<A, T> {
    type Output;

    // Required method
    fn call(self, args: A) -> Self::Output;
}
Expand description

A trait to describe any kind of type that can be called.

This trait and the Args trait are the foundation of the crate. It provides Callable::call which is how apply (and friends) work.

Required Associated Types§

Required Methods§

Source

fn call(self, args: A) -> Self::Output

Implementors§

Source§

impl<F, O, A> Callable<A, ()> for F
where F: FnOnce() -> O,

Source§

impl<F, O, A, T0> Callable<A, (T0,)> for F
where F: FnOnce(T0) -> O, A: Args<T0>,

Source§

impl<F, O, A, T0, T1> Callable<A, (T0, T1)> for F
where F: FnOnce(T0, T1) -> O, A: Args<T0> + Args<T1>,

Source§

impl<F, O, A, T0, T1, T2> Callable<A, (T0, T1, T2)> for F
where F: FnOnce(T0, T1, T2) -> O, A: Args<T0> + Args<T1> + Args<T2>,

Source§

impl<F, O, A, T0, T1, T2, T3> Callable<A, (T0, T1, T2, T3)> for F
where F: FnOnce(T0, T1, T2, T3) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4> Callable<A, (T0, T1, T2, T3, T4)> for F
where F: FnOnce(T0, T1, T2, T3, T4) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5> Callable<A, (T0, T1, T2, T3, T4, T5)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6> Callable<A, (T0, T1, T2, T3, T4, T5, T6)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23>,

Source§

impl<F, O, A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Callable<A, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)> for F
where F: FnOnce(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24>,

Source§

impl<F, O, A, T0, 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> Callable<A, (T0, 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)> for F
where F: FnOnce(T0, 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) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24> + Args<T25>,

Source§

impl<F, O, A, T0, 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> Callable<A, (T0, 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)> for F
where F: FnOnce(T0, 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) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24> + Args<T25> + Args<T26>,

Source§

impl<F, O, A, T0, 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> Callable<A, (T0, 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)> for F
where F: FnOnce(T0, 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) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24> + Args<T25> + Args<T26> + Args<T27>,

Source§

impl<F, O, A, T0, 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> Callable<A, (T0, 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)> for F
where F: FnOnce(T0, 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) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24> + Args<T25> + Args<T26> + Args<T27> + Args<T28>,

Source§

impl<F, O, A, T0, 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> Callable<A, (T0, 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)> for F
where F: FnOnce(T0, 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) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24> + Args<T25> + Args<T26> + Args<T27> + Args<T28> + Args<T29>,

Source§

impl<F, O, A, T0, 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> Callable<A, (T0, 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)> for F
where F: FnOnce(T0, 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) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24> + Args<T25> + Args<T26> + Args<T27> + Args<T28> + Args<T29> + Args<T30>,

Source§

impl<F, O, A, T0, 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> Callable<A, (T0, 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)> for F
where F: FnOnce(T0, 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) -> O, A: Args<T0> + Args<T1> + Args<T2> + Args<T3> + Args<T4> + Args<T5> + Args<T6> + Args<T7> + Args<T8> + Args<T9> + Args<T10> + Args<T11> + Args<T12> + Args<T13> + Args<T14> + Args<T15> + Args<T16> + Args<T17> + Args<T18> + Args<T19> + Args<T20> + Args<T21> + Args<T22> + Args<T23> + Args<T24> + Args<T25> + Args<T26> + Args<T27> + Args<T28> + Args<T29> + Args<T30> + Args<T31>,