IntoClosure

Trait IntoClosure 

Source
pub trait IntoClosure<M, Output> {
    // Required method
    fn into_closure(self) -> Output;
}
Expand description

Trait for converting a closure into a Closure wrapper. This trait is used instead of From to allow blanket implementations for all closure types without conflicting with other From impls. Output is a generic parameter (not associated type) to allow implementing the trait multiple times for the same type with different outputs.

Required Methods§

Source

fn into_closure(self) -> Output

Implementors§

Source§

impl<R, F> IntoClosure<fn() -> R, Closure<dyn Fn() -> R>> for F
where F: Fn() -> R + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F> IntoClosure<fn() -> R, Closure<dyn FnMut() -> R>> for F
where F: FnMut() -> R + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1> IntoClosure<(BorrowedFirstArg, fn(&A1) -> R), Closure<dyn Fn(&A1) -> R>> for F
where F: Fn(&A1) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1> IntoClosure<(BorrowedFirstArg, fn(&A1) -> R), Closure<dyn FnMut(&A1) -> R>> for F
where F: FnMut(&A1) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1> IntoClosure<fn(A1) -> R, Closure<dyn Fn(A1) -> R>> for F
where F: Fn(A1) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1> IntoClosure<fn(A1) -> R, Closure<dyn FnMut(A1) -> R>> for F
where F: FnMut(A1) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2> IntoClosure<(BorrowedFirstArg, fn(&A1, A2) -> R), Closure<dyn Fn(&A1, A2) -> R>> for F
where F: Fn(&A1, A2) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2> IntoClosure<(BorrowedFirstArg, fn(&A1, A2) -> R), Closure<dyn FnMut(&A1, A2) -> R>> for F
where F: FnMut(&A1, A2) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2> IntoClosure<fn(A1, A2) -> R, Closure<dyn Fn(A1, A2) -> R>> for F
where F: Fn(A1, A2) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2> IntoClosure<fn(A1, A2) -> R, Closure<dyn FnMut(A1, A2) -> R>> for F
where F: FnMut(A1, A2) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3) -> R), Closure<dyn Fn(&A1, A2, A3) -> R>> for F
where F: Fn(&A1, A2, A3) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3) -> R), Closure<dyn FnMut(&A1, A2, A3) -> R>> for F
where F: FnMut(&A1, A2, A3) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3> IntoClosure<fn(A1, A2, A3) -> R, Closure<dyn Fn(A1, A2, A3) -> R>> for F
where F: Fn(A1, A2, A3) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3> IntoClosure<fn(A1, A2, A3) -> R, Closure<dyn FnMut(A1, A2, A3) -> R>> for F
where F: FnMut(A1, A2, A3) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4) -> R), Closure<dyn Fn(&A1, A2, A3, A4) -> R>> for F
where F: Fn(&A1, A2, A3, A4) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4) -> R), Closure<dyn FnMut(&A1, A2, A3, A4) -> R>> for F
where F: FnMut(&A1, A2, A3, A4) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4> IntoClosure<fn(A1, A2, A3, A4) -> R, Closure<dyn Fn(A1, A2, A3, A4) -> R>> for F
where F: Fn(A1, A2, A3, A4) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4> IntoClosure<fn(A1, A2, A3, A4) -> R, Closure<dyn FnMut(A1, A2, A3, A4) -> R>> for F
where F: FnMut(A1, A2, A3, A4) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5) -> R), Closure<dyn Fn(&A1, A2, A3, A4, A5) -> R>> for F
where F: Fn(&A1, A2, A3, A4, A5) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5) -> R), Closure<dyn FnMut(&A1, A2, A3, A4, A5) -> R>> for F
where F: FnMut(&A1, A2, A3, A4, A5) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5> IntoClosure<fn(A1, A2, A3, A4, A5) -> R, Closure<dyn Fn(A1, A2, A3, A4, A5) -> R>> for F
where F: Fn(A1, A2, A3, A4, A5) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5> IntoClosure<fn(A1, A2, A3, A4, A5) -> R, Closure<dyn FnMut(A1, A2, A3, A4, A5) -> R>> for F
where F: FnMut(A1, A2, A3, A4, A5) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5, A6) -> R), Closure<dyn Fn(&A1, A2, A3, A4, A5, A6) -> R>> for F
where F: Fn(&A1, A2, A3, A4, A5, A6) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5, A6) -> R), Closure<dyn FnMut(&A1, A2, A3, A4, A5, A6) -> R>> for F
where F: FnMut(&A1, A2, A3, A4, A5, A6) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6> IntoClosure<fn(A1, A2, A3, A4, A5, A6) -> R, Closure<dyn Fn(A1, A2, A3, A4, A5, A6) -> R>> for F
where F: Fn(A1, A2, A3, A4, A5, A6) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6> IntoClosure<fn(A1, A2, A3, A4, A5, A6) -> R, Closure<dyn FnMut(A1, A2, A3, A4, A5, A6) -> R>> for F
where F: FnMut(A1, A2, A3, A4, A5, A6) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6, A7> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5, A6, A7) -> R), Closure<dyn Fn(&A1, A2, A3, A4, A5, A6, A7) -> R>> for F
where F: Fn(&A1, A2, A3, A4, A5, A6, A7) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, A7: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6, A7> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5, A6, A7) -> R), Closure<dyn FnMut(&A1, A2, A3, A4, A5, A6, A7) -> R>> for F
where F: FnMut(&A1, A2, A3, A4, A5, A6, A7) -> R + 'static, A1: RefFromBinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, A7: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6, A7> IntoClosure<fn(A1, A2, A3, A4, A5, A6, A7) -> R, Closure<dyn Fn(A1, A2, A3, A4, A5, A6, A7) -> R>> for F
where F: Fn(A1, A2, A3, A4, A5, A6, A7) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, A7: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,

Source§

impl<R, F, A1, A2, A3, A4, A5, A6, A7> IntoClosure<fn(A1, A2, A3, A4, A5, A6, A7) -> R, Closure<dyn FnMut(A1, A2, A3, A4, A5, A6, A7) -> R>> for F
where F: FnMut(A1, A2, A3, A4, A5, A6, A7) -> R + 'static, A1: BinaryDecode + EncodeTypeDef + 'static, A2: BinaryDecode + EncodeTypeDef + 'static, A3: BinaryDecode + EncodeTypeDef + 'static, A4: BinaryDecode + EncodeTypeDef + 'static, A5: BinaryDecode + EncodeTypeDef + 'static, A6: BinaryDecode + EncodeTypeDef + 'static, A7: BinaryDecode + EncodeTypeDef + 'static, R: BinaryEncode + EncodeTypeDef + 'static,