pub struct Closure<T: ?Sized> { /* private fields */ }Expand description
Closure type for passing Rust closures to JavaScript.
Implementations§
Source§impl<T: ?Sized> Closure<T>
impl<T: ?Sized> Closure<T>
pub fn new<M, F: IntoClosure<M, Self>>(f: F) -> Self
Sourcepub fn once<F, M>(fn_once: F) -> Closure<T>where
F: WasmClosureFnOnce<T, M>,
pub fn once<F, M>(fn_once: F) -> Closure<T>where
F: WasmClosureFnOnce<T, M>,
Create a Closure from a function that can only be called once.
Since we have no way of enforcing that JS cannot attempt to call this
FnOnce more than once, this produces a Closure<dyn FnMut(A...) -> R>
that will panic if called more than once.
Source§impl<T: ?Sized> Closure<T>
impl<T: ?Sized> Closure<T>
Sourcepub fn wrap<M>(data: Box<T>) -> Closure<T>where
T: WasmClosure<M>,
pub fn wrap<M>(data: Box<T>) -> Closure<T>where
T: WasmClosure<M>,
Wrap a boxed closure to create a Closure.
This is the classic wasm-bindgen API for creating closures from boxed trait objects.
Sourcepub fn into_js_value(self) -> JsValue
pub fn into_js_value(self) -> JsValue
Converts the Closure into a JsValue.
Sourcepub fn once_into_js<F, M>(fn_once: F) -> JsValuewhere
F: WasmClosureFnOnce<T, M>,
T: Sized,
pub fn once_into_js<F, M>(fn_once: F) -> JsValuewhere
F: WasmClosureFnOnce<T, M>,
T: Sized,
Create a Closure from a function that can only be called once,
and return the underlying JsValue directly.
This is a convenience method that combines once and into_js_value.
Trait Implementations§
Source§impl<F: ?Sized> BatchableResult for Closure<F>
impl<F: ?Sized> BatchableResult for Closure<F>
Source§impl<F: ?Sized> BinaryDecode for Closure<F>
impl<F: ?Sized> BinaryDecode for Closure<F>
fn decode(decoder: &mut DecodedData<'_>) -> Result<Self, DecodeError>
Source§impl<F: ?Sized> BinaryEncode for &Closure<F>
impl<F: ?Sized> BinaryEncode for &Closure<F>
fn encode(self, encoder: &mut EncodedData)
Source§impl<F: ?Sized> BinaryEncode for Closure<F>
impl<F: ?Sized> BinaryEncode for Closure<F>
fn encode(self, encoder: &mut EncodedData)
Source§impl<T: ?Sized> EncodeTypeDef for Closure<T>
impl<T: ?Sized> EncodeTypeDef for Closure<T>
Source§fn encode_type_def(buf: &mut Vec<u8>)
fn encode_type_def(buf: &mut Vec<u8>)
Encode this type’s definition into the buffer.
For primitives, this is just the TypeTag byte.
For callbacks, this includes param count, param types, and return type.
Source§impl<R, F, A1> IntoClosure<(BorrowedFirstArg, fn(&A1) -> R), Closure<dyn Fn(&A1) -> R>> for Fwhere
F: Fn(&A1) -> R + 'static,
A1: RefFromBinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1> IntoClosure<(BorrowedFirstArg, fn(&A1) -> R), Closure<dyn Fn(&A1) -> R>> for Fwhere
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 Fwhere
F: FnMut(&A1) -> R + 'static,
A1: RefFromBinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1> IntoClosure<(BorrowedFirstArg, fn(&A1) -> R), Closure<dyn FnMut(&A1) -> R>> for Fwhere
F: FnMut(&A1) -> R + 'static,
A1: RefFromBinaryDecode + 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 Fwhere
F: Fn(&A1, A2) -> R + 'static,
A1: RefFromBinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2> IntoClosure<(BorrowedFirstArg, fn(&A1, A2) -> R), Closure<dyn Fn(&A1, A2) -> R>> for Fwhere
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 Fwhere
F: FnMut(&A1, A2) -> R + 'static,
A1: RefFromBinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2> IntoClosure<(BorrowedFirstArg, fn(&A1, A2) -> R), Closure<dyn FnMut(&A1, A2) -> R>> for Fwhere
F: FnMut(&A1, A2) -> R + 'static,
A1: RefFromBinaryDecode + 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 Fwhere
F: Fn(&A1, A2, A3) -> R + 'static,
A1: RefFromBinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
A3: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2, A3> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3) -> R), Closure<dyn Fn(&A1, A2, A3) -> R>> for Fwhere
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 Fwhere
F: FnMut(&A1, A2, A3) -> R + 'static,
A1: RefFromBinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
A3: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2, A3> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3) -> R), Closure<dyn FnMut(&A1, A2, A3) -> R>> for Fwhere
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, A4> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4) -> R), Closure<dyn Fn(&A1, A2, A3, A4) -> R>> for Fwhere
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,
impl<R, F, A1, A2, A3, A4> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4) -> R), Closure<dyn Fn(&A1, A2, A3, A4) -> R>> for Fwhere
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 Fwhere
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,
impl<R, F, A1, A2, A3, A4> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4) -> R), Closure<dyn FnMut(&A1, A2, A3, A4) -> R>> for Fwhere
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, A5> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5) -> R), Closure<dyn Fn(&A1, A2, A3, A4, A5) -> R>> for Fwhere
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,
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 Fwhere
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 Fwhere
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,
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 Fwhere
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, A6> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5, A6) -> R), Closure<dyn Fn(&A1, A2, A3, A4, A5, A6) -> R>> for Fwhere
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,
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 Fwhere
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 Fwhere
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,
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 Fwhere
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, A7> IntoClosure<(BorrowedFirstArg, fn(&A1, A2, A3, A4, A5, A6, A7) -> R), Closure<dyn Fn(&A1, A2, A3, A4, A5, A6, A7) -> R>> for Fwhere
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,
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 Fwhere
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 Fwhere
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,
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 Fwhere
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> IntoClosure<fn() -> R, Closure<dyn Fn() -> R>> for F
impl<R, F> IntoClosure<fn() -> R, Closure<dyn Fn() -> R>> for F
fn into_closure(self) -> Closure<dyn Fn() -> R>
Source§impl<R, F> IntoClosure<fn() -> R, Closure<dyn FnMut() -> R>> for F
impl<R, F> IntoClosure<fn() -> R, Closure<dyn FnMut() -> R>> for F
fn into_closure(self) -> Closure<dyn FnMut() -> R>
Source§impl<R, F, A1> IntoClosure<fn(A1) -> R, Closure<dyn Fn(A1) -> R>> for Fwhere
F: Fn(A1) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1> IntoClosure<fn(A1) -> R, Closure<dyn Fn(A1) -> R>> for Fwhere
F: Fn(A1) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
fn into_closure(self) -> Closure<dyn Fn(A1) -> R>
Source§impl<R, F, A1> IntoClosure<fn(A1) -> R, Closure<dyn FnMut(A1) -> R>> for Fwhere
F: FnMut(A1) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1> IntoClosure<fn(A1) -> R, Closure<dyn FnMut(A1) -> R>> for Fwhere
F: FnMut(A1) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
fn into_closure(self) -> Closure<dyn FnMut(A1) -> R>
Source§impl<R, F, A1, A2> IntoClosure<fn(A1, A2) -> R, Closure<dyn Fn(A1, A2) -> R>> for Fwhere
F: Fn(A1, A2) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2> IntoClosure<fn(A1, A2) -> R, Closure<dyn Fn(A1, A2) -> R>> for Fwhere
F: Fn(A1, A2) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
fn into_closure(self) -> Closure<dyn Fn(A1, A2) -> R>
Source§impl<R, F, A1, A2> IntoClosure<fn(A1, A2) -> R, Closure<dyn FnMut(A1, A2) -> R>> for Fwhere
F: FnMut(A1, A2) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2> IntoClosure<fn(A1, A2) -> R, Closure<dyn FnMut(A1, A2) -> R>> for Fwhere
F: FnMut(A1, A2) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
fn into_closure(self) -> Closure<dyn FnMut(A1, A2) -> R>
Source§impl<R, F, A1, A2, A3> IntoClosure<fn(A1, A2, A3) -> R, Closure<dyn Fn(A1, A2, A3) -> R>> for Fwhere
F: Fn(A1, A2, A3) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
A3: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2, A3> IntoClosure<fn(A1, A2, A3) -> R, Closure<dyn Fn(A1, A2, A3) -> R>> for Fwhere
F: Fn(A1, A2, A3) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
A3: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
fn into_closure(self) -> Closure<dyn Fn(A1, A2, A3) -> R>
Source§impl<R, F, A1, A2, A3> IntoClosure<fn(A1, A2, A3) -> R, Closure<dyn FnMut(A1, A2, A3) -> R>> for Fwhere
F: FnMut(A1, A2, A3) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
A3: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
impl<R, F, A1, A2, A3> IntoClosure<fn(A1, A2, A3) -> R, Closure<dyn FnMut(A1, A2, A3) -> R>> for Fwhere
F: FnMut(A1, A2, A3) -> R + 'static,
A1: BinaryDecode + EncodeTypeDef + 'static,
A2: BinaryDecode + EncodeTypeDef + 'static,
A3: BinaryDecode + EncodeTypeDef + 'static,
R: BinaryEncode + EncodeTypeDef + 'static,
fn into_closure(self) -> Closure<dyn FnMut(A1, A2, A3) -> R>
Source§impl<R, F, A1, A2, A3, A4> IntoClosure<fn(A1, A2, A3, A4) -> R, Closure<dyn Fn(A1, A2, A3, A4) -> R>> for Fwhere
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,
impl<R, F, A1, A2, A3, A4> IntoClosure<fn(A1, A2, A3, A4) -> R, Closure<dyn Fn(A1, A2, A3, A4) -> R>> for Fwhere
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,
fn into_closure(self) -> Closure<dyn Fn(A1, A2, A3, A4) -> R>
Source§impl<R, F, A1, A2, A3, A4> IntoClosure<fn(A1, A2, A3, A4) -> R, Closure<dyn FnMut(A1, A2, A3, A4) -> R>> for Fwhere
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,
impl<R, F, A1, A2, A3, A4> IntoClosure<fn(A1, A2, A3, A4) -> R, Closure<dyn FnMut(A1, A2, A3, A4) -> R>> for Fwhere
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,
fn into_closure(self) -> Closure<dyn FnMut(A1, A2, A3, A4) -> R>
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 Fwhere
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,
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 Fwhere
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,
fn into_closure(self) -> Closure<dyn Fn(A1, A2, A3, A4, A5) -> R>
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 Fwhere
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,
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 Fwhere
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,
fn into_closure(self) -> Closure<dyn FnMut(A1, A2, A3, A4, A5) -> R>
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 Fwhere
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,
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 Fwhere
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,
fn into_closure(self) -> Closure<dyn Fn(A1, A2, A3, A4, A5, A6) -> R>
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 Fwhere
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,
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 Fwhere
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,
fn into_closure(self) -> Closure<dyn FnMut(A1, A2, A3, A4, A5, A6) -> R>
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 Fwhere
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,
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 Fwhere
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,
fn into_closure(self) -> Closure<dyn Fn(A1, A2, A3, A4, A5, A6, A7) -> R>
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 Fwhere
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,
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 Fwhere
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,
fn into_closure(self) -> Closure<dyn FnMut(A1, A2, A3, A4, A5, A6, A7) -> R>
Auto Trait Implementations§
impl<T> Freeze for Closure<T>where
T: ?Sized,
impl<T> RefUnwindSafe for Closure<T>where
T: RefUnwindSafe + ?Sized,
impl<T> Send for Closure<T>
impl<T> Sync for Closure<T>
impl<T> Unpin for Closure<T>where
T: ?Sized,
impl<T> UnwindSafe for Closure<T>where
T: UnwindSafe + ?Sized,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more