pub struct CallbackKey<F>(/* private fields */)
where
F: ?Sized;Expand description
Wrapper type that encodes a callback registration key with Callback type info.
This tells JS to create a RustFunction wrapper when decoding the value.
The type parameter F should be dyn FnMut(...) -> R to capture the callback signature.
Trait Implementations§
Source§impl<F> BinaryEncode for CallbackKey<F>where
F: ?Sized,
impl<F> BinaryEncode for CallbackKey<F>where
F: ?Sized,
fn encode(self, encoder: &mut EncodedData)
Source§impl<R, A1> EncodeTypeDef for CallbackKey<fn(&A1) -> R>where
A1: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1> EncodeTypeDef for CallbackKey<fn(&A1) -> R>where
A1: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2> EncodeTypeDef for CallbackKey<fn(&A1, A2) -> R>
impl<R, A1, A2> EncodeTypeDef for CallbackKey<fn(&A1, A2) -> R>
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, A1, A2, A3> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4, A5> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4, A5) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4, A5> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4, A5) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4, A5, A6> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4, A5, A6) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4, A5, A6> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4, A5, A6) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4, A5, A6, A7> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4, A5, A6, A7) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
A7: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4, A5, A6, A7> EncodeTypeDef for CallbackKey<fn(&A1, A2, A3, A4, A5, A6, A7) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
A7: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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> EncodeTypeDef for CallbackKey<fn() -> R>where
R: EncodeTypeDef + 'static,
impl<R> EncodeTypeDef for CallbackKey<fn() -> R>where
R: EncodeTypeDef + 'static,
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, A1> EncodeTypeDef for CallbackKey<fn(A1) -> R>where
A1: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1> EncodeTypeDef for CallbackKey<fn(A1) -> R>where
A1: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2> EncodeTypeDef for CallbackKey<fn(A1, A2) -> R>
impl<R, A1, A2> EncodeTypeDef for CallbackKey<fn(A1, A2) -> R>
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, A1, A2, A3> EncodeTypeDef for CallbackKey<fn(A1, A2, A3) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3> EncodeTypeDef for CallbackKey<fn(A1, A2, A3) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4, A5> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4, A5) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4, A5> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4, A5) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4, A5, A6> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4, A5, A6) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4, A5, A6> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4, A5, A6) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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, A1, A2, A3, A4, A5, A6, A7> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4, A5, A6, A7) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
A7: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
impl<R, A1, A2, A3, A4, A5, A6, A7> EncodeTypeDef for CallbackKey<fn(A1, A2, A3, A4, A5, A6, A7) -> R>where
A1: EncodeTypeDef + 'static,
A2: EncodeTypeDef + 'static,
A3: EncodeTypeDef + 'static,
A4: EncodeTypeDef + 'static,
A5: EncodeTypeDef + 'static,
A6: EncodeTypeDef + 'static,
A7: EncodeTypeDef + 'static,
R: EncodeTypeDef + 'static,
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.
Auto Trait Implementations§
impl<F> Freeze for CallbackKey<F>where
F: ?Sized,
impl<F> RefUnwindSafe for CallbackKey<F>where
F: RefUnwindSafe + ?Sized,
impl<F> Send for CallbackKey<F>
impl<F> Sync for CallbackKey<F>
impl<F> Unpin for CallbackKey<F>
impl<F> UnwindSafe for CallbackKey<F>where
F: 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