pub struct Function<T: JsFunction = fn(JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) -> JsValue> { /* private fields */ }Expand description
Function represents any generic Function in JS, by treating all arguments as JsValue.
It takes a generic parameter of phantom type fn (Arg1, ..., Argn) -> Ret which
is used to type the JS function. For example, Function<fn () -> Number> represents
a function taking no arguments that returns a number.
The 8 generic argument parameters (Arg1 through Arg8) are the argument
types. Arguments not provided enable strict arity checking at compile time.
A void function is represented by fn (Arg) -> Undefined, and not the () unit
type. This is because generics must be based on JS values in the JS generic type system.
The default without any parameters is as a void function - no arguments, Undefined return.
The default generic for Function is fn (JsValue, JsValue, ...) -> JsValue,
representing any function, since all functions safely upcast into this function.
§Arity Enforcement
It is not possible to use call4 or bind4 on a function that does not have
at least 4 arguments — the compiler will reject this because only arguments that
are not None support the trait bound for ErasableGeneric.
§Examples
// A function taking no args, returning Number
let f: Function<Number> = get_some_fn();
// A function taking (String, Number) and returning Boolean
let f: Function<Boolean, String, Number> = get_some_fn();
## Upcasting
To pass a typed `Function` where a different generic Function is expected, `upcast()` may be used
to convert into any generic `Function` at zero cost with type-safety.
MDN documentation (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function)Implementations§
Source§impl Function
impl Function
pub fn new_with_args_typed<T: JsFunction>(args: &str, body: &str) -> Function<T>
Source§impl Function
impl Function
pub fn new_no_args_typed<T: JsFunction>(body: &str) -> Function<T>
Source§impl<T: JsFunction> Function<T>
impl<T: JsFunction> Function<T>
pub fn apply(
&self,
context: &JsValue,
args: &Array,
) -> Result<<T as JsFunction>::Ret, JsValue>where
Result<<T as JsFunction>::Ret, JsValue>: ErasableGenericOwn<Result<<fn() -> JsValue as JsFunction>::Ret, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, F: JsFunction<Ret = Ret>> Function<F>
impl<Ret: JsGeneric, F: JsFunction<Ret = Ret>> Function<F>
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction1<Arg1 = Arg1>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction1<Arg1 = Arg1>> Function<F>
pub fn call1(&self, context: &JsValue, arg1: &Arg1) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction1<Arg1 = Arg1> + JsFunction2<Arg2 = Arg2>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction1<Arg1 = Arg1> + JsFunction2<Arg2 = Arg2>> Function<F>
pub fn call2(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction3<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction3<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3>> Function<F>
pub fn call3(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction4<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction4<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4>> Function<F>
pub fn call4(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction5<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction5<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5>> Function<F>
pub fn call5(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction6<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction6<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6>> Function<F>
pub fn call6(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction7<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, F: JsFunction<Ret = Ret> + JsFunction7<Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7>> Function<F>
pub fn call7(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
arg7: &Arg7,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Arg7: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg7: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
pub fn call8(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
arg7: &Arg7,
arg8: &Arg8,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Arg7: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg7: BinaryEncode,
Arg8: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg8: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
pub fn call9(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
arg7: &Arg7,
arg8: &Arg8,
arg9: &JsValue,
) -> Result<Ret, JsValue>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Arg7: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg7: BinaryEncode,
Arg8: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg8: BinaryEncode,
Result<Ret, JsValue>: ErasableGenericOwn<Result<JsValue, JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<T: JsFunction> Function<T>
impl<T: JsFunction> Function<T>
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, F: JsFunction1<Ret = Ret, Arg1 = Arg1>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, F: JsFunction1<Ret = Ret, Arg1 = Arg1>> Function<F>
pub fn bind1(
&self,
context: &JsValue,
arg1: &Arg1,
) -> Function<<F as JsFunction1>::Bind1>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Function<<F as JsFunction1>::Bind1>: ErasableGenericOwn<Function<<fn(JsValue) -> JsValue as JsFunction1>::Bind1>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, F: JsFunction2<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, F: JsFunction2<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2>> Function<F>
pub fn bind2(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
) -> Function<<F as JsFunction2>::Bind2>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Function<<F as JsFunction2>::Bind2>: ErasableGenericOwn<Function<<fn(JsValue, JsValue) -> JsValue as JsFunction2>::Bind2>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, F: JsFunction3<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, F: JsFunction3<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3>> Function<F>
pub fn bind3(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
) -> Function<<F as JsFunction3>::Bind3>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Function<<F as JsFunction3>::Bind3>: ErasableGenericOwn<Function<<fn(JsValue, JsValue, JsValue) -> JsValue as JsFunction3>::Bind3>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, F: JsFunction4<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, F: JsFunction4<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4>> Function<F>
pub fn bind4(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
) -> Function<<F as JsFunction4>::Bind4>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Function<<F as JsFunction4>::Bind4>: ErasableGenericOwn<Function<<fn(JsValue, JsValue, JsValue, JsValue) -> JsValue as JsFunction4>::Bind4>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, F: JsFunction5<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, F: JsFunction5<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5>> Function<F>
pub fn bind5(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
) -> Function<<F as JsFunction5>::Bind5>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Function<<F as JsFunction5>::Bind5>: ErasableGenericOwn<Function<<fn(JsValue, JsValue, JsValue, JsValue, JsValue) -> JsValue as JsFunction5>::Bind5>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, F: JsFunction6<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, F: JsFunction6<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6>> Function<F>
pub fn bind6(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
) -> Function<<F as JsFunction6>::Bind6>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Function<<F as JsFunction6>::Bind6>: ErasableGenericOwn<Function<<fn(JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) -> JsValue as JsFunction6>::Bind6>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, F: JsFunction7<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, F: JsFunction7<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7>> Function<F>
pub fn bind7(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
arg7: &Arg7,
) -> Function<<F as JsFunction7>::Bind7>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Arg7: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg7: BinaryEncode,
Function<<F as JsFunction7>::Bind7>: ErasableGenericOwn<Function<<fn(JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) -> JsValue as JsFunction7>::Bind7>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
pub fn bind8(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
arg7: &Arg7,
arg8: &Arg8,
) -> Function<<F as JsFunction8>::Bind8>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Arg7: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg7: BinaryEncode,
Arg8: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg8: BinaryEncode,
Function<<F as JsFunction8>::Bind8>: ErasableGenericOwn<Function<<fn(JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue, JsValue) -> JsValue as JsFunction8>::Bind8>> + EncodeTypeDef + BatchableResult,
Source§impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
impl<Ret: JsGeneric, Arg1: JsGeneric, Arg2: JsGeneric, Arg3: JsGeneric, Arg4: JsGeneric, Arg5: JsGeneric, Arg6: JsGeneric, Arg7: JsGeneric, Arg8: JsGeneric, F: JsFunction8<Ret = Ret, Arg1 = Arg1, Arg2 = Arg2, Arg3 = Arg3, Arg4 = Arg4, Arg5 = Arg5, Arg6 = Arg6, Arg7 = Arg7, Arg8 = Arg8>> Function<F>
pub fn bind9(
&self,
context: &JsValue,
arg1: &Arg1,
arg2: &Arg2,
arg3: &Arg3,
arg4: &Arg4,
arg5: &Arg5,
arg6: &Arg6,
arg7: &Arg7,
arg8: &Arg8,
arg9: &JsValue,
) -> Function<fn() -> Ret>where
Arg1: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg1: BinaryEncode,
Arg2: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg2: BinaryEncode,
Arg3: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg3: BinaryEncode,
Arg4: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg4: BinaryEncode,
Arg5: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg5: BinaryEncode,
Arg6: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg6: BinaryEncode,
Arg7: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg7: BinaryEncode,
Arg8: ErasableGenericBorrow<JsValue> + EncodeTypeDef,
for<'__wry_bindgen> &'__wry_bindgen Arg8: BinaryEncode,
Function<fn() -> Ret>: ErasableGenericOwn<Function<fn() -> JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<T: JsFunction> Function<T>
impl<T: JsFunction> Function<T>
Source§impl<T: JsFunction> Function<T>
impl<T: JsFunction> Function<T>
Sourcepub fn call<Args: JsArgs<T>>(
&self,
context: &JsValue,
args: Args,
) -> Result<T::Ret, JsValue>
pub fn call<Args: JsArgs<T>>( &self, context: &JsValue, args: Args, ) -> Result<T::Ret, JsValue>
The call() method calls a function with a given this value and
arguments provided as a tuple.
This method accepts a tuple of references matching the function’s argument types.
§Example
// 0-arg function
let f: Function<fn() -> Number> = get_fn();
let result = f.call(&JsValue::NULL, ())?;
// 1-arg function (note trailing comma for 1-tuple)
let f: Function<fn(JsString) -> Number> = get_fn();
let result = f.call(&JsValue::NULL, (&name,))?;
// 2-arg function
let f: Function<fn(JsString, Boolean) -> Number> = get_fn();
let result = f.call(&JsValue::NULL, (&name, &flag))?;Sourcepub fn bindn<Args: JsArgs<T>>(
&self,
context: &JsValue,
args: Args,
) -> Args::BindOutput
pub fn bindn<Args: JsArgs<T>>( &self, context: &JsValue, args: Args, ) -> Args::BindOutput
The bind() method creates a new function that, when called, has its
this keyword set to the provided value, with a given sequence of
arguments preceding any provided when the new function is called.
This method accepts a tuple of references to bind.
§Example
let f: Function<fn(JsString, Boolean) -> Number> = get_fn();
// Bind no args - same signature
let bound: Function<fn(JsString, Boolean) -> Number> = f.bind(&ctx, ());
// Bind one arg (use 1-tuple of references)
let bound: Function<fn(Boolean) -> Number> = f.bind(&ctx, (&my_string,));
// Bind two args - becomes 0-arg function
let bound: Function<fn() -> Number> = f.bind(&ctx, (&my_string, &my_bool));Source§impl<F: JsFunction> Function<F>
impl<F: JsFunction> Function<F>
Sourcepub fn closure_ref<'a, C>(closure: &'a ScopedClosure<'_, C>) -> &'a Selfwhere
F: FunctionIntoClosure,
C: WasmClosure + ?Sized,
<F as FunctionIntoClosure>::ClosureTypeMut: UpcastFrom<<C as WasmClosure>::AsMut>,
pub fn closure_ref<'a, C>(closure: &'a ScopedClosure<'_, C>) -> &'a Selfwhere
F: FunctionIntoClosure,
C: WasmClosure + ?Sized,
<F as FunctionIntoClosure>::ClosureTypeMut: UpcastFrom<<C as WasmClosure>::AsMut>,
Convert a borrowed ScopedClosure into a typed JavaScript Function reference.
The conversion is a direct type-safe conversion and upcast of a
closure into its corresponding typed JavaScript Function,
based on covariance and contravariance Upcast trait hierarchy.
For transferring ownership to JS, use Function::from_closure.
Sourcepub fn from_closure<C>(closure: ScopedClosure<'static, C>) -> Selfwhere
F: FunctionIntoClosure,
C: WasmClosure + ?Sized,
<F as FunctionIntoClosure>::ClosureTypeMut: UpcastFrom<<C as WasmClosure>::AsMut>,
pub fn from_closure<C>(closure: ScopedClosure<'static, C>) -> Selfwhere
F: FunctionIntoClosure,
C: WasmClosure + ?Sized,
<F as FunctionIntoClosure>::ClosureTypeMut: UpcastFrom<<C as WasmClosure>::AsMut>,
Convert a Rust closure into a typed JavaScript Function.
This function releases ownership of the closure to JS, and provides an owned function handle for the same closure.
The conversion is a direct type-safe conversion and upcast of a
closure into its corresponding typed JavaScript Function,
based on covariance and contravariance Upcast trait hierarchy.
This method is only supported for static closures which do not have borrowed lifetime data, and thus can be released into JS.
For borrowed closures, which cannot cede ownership to JS,
instead use Function::closure_ref.
Methods from Deref<Target = Object>§
pub fn constructor(&self) -> Function
pub fn has_own_property(&self, property: &JsValue) -> bool
Use Object::hasOwn instead.
pub fn is_prototype_of(&self, value: &JsValue) -> bool
pub fn property_is_enumerable(&self, property: &JsValue) -> bool
pub fn to_locale_string(&self) -> JsString
pub fn to_string(&self) -> JsString
pub fn to_js_string(&self) -> JsString
pub fn value_of(&self) -> Object
Methods from Deref<Target = JsValue>§
pub const NULL: JsValue
pub const UNDEFINED: JsValue
pub const TRUE: JsValue
pub const FALSE: JsValue
Sourcepub fn unchecked_into_f64(&self) -> f64
pub fn unchecked_into_f64(&self) -> f64
Returns the value as f64 without type checking. Used by serde-wasm-bindgen for numeric conversions.
Sourcepub fn has_type<T>(&self) -> boolwhere
T: JsCast,
pub fn has_type<T>(&self) -> boolwhere
T: JsCast,
Check if this value is an instance of a specific JS type.
Sourcepub fn checked_div(&self, rhs: &JsValue) -> JsValue
pub fn checked_div(&self, rhs: &JsValue) -> JsValue
Checked division.
Sourcepub fn unsigned_shr(&self, rhs: &JsValue) -> u32
pub fn unsigned_shr(&self, rhs: &JsValue) -> u32
Unsigned right shift.
Sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Check if this value is a function.
Sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Check if this value is undefined.
Sourcepub fn is_null_or_undefined(&self) -> bool
pub fn is_null_or_undefined(&self) -> bool
Check if this value is null or undefined.
Sourcepub fn js_in(&self, obj: &JsValue) -> bool
pub fn js_in(&self, obj: &JsValue) -> bool
Check if this value has a property with the given name.
Sourcepub fn as_debug_string(&self) -> String
pub fn as_debug_string(&self) -> String
Get a debug string representation of the value.
Trait Implementations§
Source§impl<T: JsFunction> BatchableResult for Function<T>
impl<T: JsFunction> BatchableResult for Function<T>
fn try_placeholder(batch: &mut Runtime<'_>) -> Option<Self>
Source§impl<T: JsFunction> BinaryDecode for Function<T>
impl<T: JsFunction> BinaryDecode for Function<T>
fn decode(decoder: &mut DecodedData<'_>) -> Result<Self, DecodeError>
Source§impl<T: JsFunction> BinaryEncode for Function<T>
impl<T: JsFunction> BinaryEncode for Function<T>
fn encode(self, encoder: &mut EncodedData)
Source§impl<T: JsFunction> Deref for Function<T>
impl<T: JsFunction> Deref for Function<T>
Source§impl<T: JsFunction> EncodeTypeDef for Function<T>
impl<T: JsFunction> EncodeTypeDef for Function<T>
fn encode_type_def(type_def: &mut TypeDef)
impl<T: Eq + JsFunction> Eq for Function<T>
Source§impl<T: JsFunction> ErasableGeneric for Function<T>
impl<T: JsFunction> ErasableGeneric for Function<T>
Source§impl<T: JsFunction + 'static> IntoJsGeneric for Function<T>
impl<T: JsFunction + 'static> IntoJsGeneric for Function<T>
Source§impl<T: JsFunction> JsCast for Function<T>
impl<T: JsFunction> JsCast for Function<T>
Source§fn instanceof(__val: &JsValue) -> bool
fn instanceof(__val: &JsValue) -> bool
Source§fn is_type_of(__val: &JsValue) -> bool
fn is_type_of(__val: &JsValue) -> bool
JsValue provided
is a value of this type. Read moreSource§fn unchecked_from_js(val: JsValue) -> Self
fn unchecked_from_js(val: JsValue) -> Self
Source§fn unchecked_from_js_ref(val: &JsValue) -> &Self
fn unchecked_from_js_ref(val: &JsValue) -> &Self
Source§fn has_type<T>(&self) -> boolwhere
T: JsCast,
fn has_type<T>(&self) -> boolwhere
T: JsCast,
T. Read moreSource§fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
Source§fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
Source§fn is_instance_of<T>(&self) -> boolwhere
T: JsCast,
fn is_instance_of<T>(&self) -> boolwhere
T: JsCast,
T. Read moreSource§fn unchecked_into<T>(self) -> Twhere
T: JsCast,
fn unchecked_into<T>(self) -> Twhere
T: JsCast,
Source§fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
Source§impl<T: JsFunction> JsRefEncode for Function<T>
impl<T: JsFunction> JsRefEncode for Function<T>
Source§impl<T: PartialEq + JsFunction> PartialEq for Function<T>
impl<T: PartialEq + JsFunction> PartialEq for Function<T>
Source§impl<T: JsFunction> Promising for Function<T>
impl<T: JsFunction> Promising for Function<T>
type Resolution = Function<T>
impl<T: JsFunction> StructuralPartialEq for Function<T>
impl<T: JsFunction> UpcastFrom<Function<T>> for JsValue
impl<T: JsFunction> UpcastFrom<Function<T>> for JsOption<JsValue>
impl<T: JsFunction> UpcastFrom<Function<T>> for Object
impl<T: JsFunction> UpcastFrom<Function<T>> for JsOption<Object>
impl<T: JsFunction, U> UpcastFrom<Function<T>> for Function<U>where
U: UpcastFrom<T> + JsFunction,
Auto Trait Implementations§
impl<T> Freeze for Function<T>
impl<T> RefUnwindSafe for Function<T>
impl<T> Send for Function<T>
impl<T> Sync for Function<T>
impl<T> Unpin for Function<T>
impl<T> UnsafeUnpin for Function<T>
impl<T> UnwindSafe for Function<T>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FromJsFuture for Twhere
T: TryFromJsValue,
impl<T> FromJsFuture for Twhere
T: TryFromJsValue,
Source§impl<T> FromWasmAbi for Twhere
T: JsGeneric,
impl<T> FromWasmAbi for Twhere
T: JsGeneric,
Source§impl<T> IntoWasmAbi for Twhere
T: JsGeneric,
impl<T> IntoWasmAbi for Twhere
T: JsGeneric,
impl<T> JsGeneric for Twhere
T: ErasableGeneric<Repr = JsValue> + UpcastFrom<T> + Upcast<JsValue> + JsCast + JsRefEncode + EncodeTypeDef + BinaryEncode + BinaryDecode + BatchableResult + 'static,
impl<T> OptionFromWasmAbi for Twhere
T: FromWasmAbi,
impl<T> OptionIntoWasmAbi for Twhere
T: IntoWasmAbi,
Source§impl<T> RefFromWasmAbi for Twhere
T: ?Sized,
impl<T> RefFromWasmAbi for Twhere
T: ?Sized,
Source§impl<T> ReturnSync for Twhere
T: IntoWasmAbi,
impl<T> ReturnSync for Twhere
T: IntoWasmAbi,
Source§fn return_abi(self, encoder: &mut EncodedData)
fn return_abi(self, encoder: &mut EncodedData)
self as the function’s return payload.