pub trait IntoJsFunc<'js, P> {
    // Required methods
    fn param_requirements() -> ParamRequirement;
    fn call<'a>(&self, params: Params<'a, 'js>) -> Result<Value<'js>, Error>;
}
Expand description

A trait for converting a Rust function to a JavaScript function.

Required Methods§

source

fn param_requirements() -> ParamRequirement

Returns the requirements this function has for the set of arguments used to call this function.

source

fn call<'a>(&self, params: Params<'a, 'js>) -> Result<Value<'js>, Error>

Call the function with the given parameters.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'js, R, Fun> IntoJsFunc<'js, ()> for MutFn<Fun>
where Fun: FnMut() -> R + 'js, (): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun> IntoJsFunc<'js, ()> for OnceFn<Fun>
where Fun: FnOnce() -> R + 'js, (): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun> IntoJsFunc<'js, ()> for Fun
where Fun: Fn() -> R + 'js, (): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A> IntoJsFunc<'js, (A,)> for MutFn<Fun>
where Fun: FnMut(A) -> R + 'js, (A,): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A> IntoJsFunc<'js, (A,)> for OnceFn<Fun>
where Fun: FnOnce(A) -> R + 'js, (A,): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A> IntoJsFunc<'js, (A,)> for Fun
where Fun: Fn(A) -> R + 'js, (A,): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B> IntoJsFunc<'js, (A, B)> for MutFn<Fun>
where Fun: FnMut(A, B) -> R + 'js, (A, B): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B> IntoJsFunc<'js, (A, B)> for OnceFn<Fun>
where Fun: FnOnce(A, B) -> R + 'js, (A, B): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B> IntoJsFunc<'js, (A, B)> for Fun
where Fun: Fn(A, B) -> R + 'js, (A, B): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C> IntoJsFunc<'js, (A, B, C)> for MutFn<Fun>
where Fun: FnMut(A, B, C) -> R + 'js, (A, B, C): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C> IntoJsFunc<'js, (A, B, C)> for OnceFn<Fun>
where Fun: FnOnce(A, B, C) -> R + 'js, (A, B, C): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C> IntoJsFunc<'js, (A, B, C)> for Fun
where Fun: Fn(A, B, C) -> R + 'js, (A, B, C): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D> IntoJsFunc<'js, (A, B, C, D)> for MutFn<Fun>
where Fun: FnMut(A, B, C, D) -> R + 'js, (A, B, C, D): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D> IntoJsFunc<'js, (A, B, C, D)> for OnceFn<Fun>
where Fun: FnOnce(A, B, C, D) -> R + 'js, (A, B, C, D): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D> IntoJsFunc<'js, (A, B, C, D)> for Fun
where Fun: Fn(A, B, C, D) -> R + 'js, (A, B, C, D): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E> IntoJsFunc<'js, (A, B, C, D, E)> for MutFn<Fun>
where Fun: FnMut(A, B, C, D, E) -> R + 'js, (A, B, C, D, E): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E> IntoJsFunc<'js, (A, B, C, D, E)> for OnceFn<Fun>
where Fun: FnOnce(A, B, C, D, E) -> R + 'js, (A, B, C, D, E): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E> IntoJsFunc<'js, (A, B, C, D, E)> for Fun
where Fun: Fn(A, B, C, D, E) -> R + 'js, (A, B, C, D, E): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F> IntoJsFunc<'js, (A, B, C, D, E, F)> for MutFn<Fun>
where Fun: FnMut(A, B, C, D, E, F) -> R + 'js, (A, B, C, D, E, F): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F> IntoJsFunc<'js, (A, B, C, D, E, F)> for OnceFn<Fun>
where Fun: FnOnce(A, B, C, D, E, F) -> R + 'js, (A, B, C, D, E, F): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F> IntoJsFunc<'js, (A, B, C, D, E, F)> for Fun
where Fun: Fn(A, B, C, D, E, F) -> R + 'js, (A, B, C, D, E, F): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F, G> IntoJsFunc<'js, (A, B, C, D, E, F, G)> for MutFn<Fun>
where Fun: FnMut(A, B, C, D, E, F, G) -> R + 'js, (A, B, C, D, E, F, G): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F, G> IntoJsFunc<'js, (A, B, C, D, E, F, G)> for OnceFn<Fun>
where Fun: FnOnce(A, B, C, D, E, F, G) -> R + 'js, (A, B, C, D, E, F, G): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F, G> IntoJsFunc<'js, (A, B, C, D, E, F, G)> for Fun
where Fun: Fn(A, B, C, D, E, F, G) -> R + 'js, (A, B, C, D, E, F, G): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F, G, H> IntoJsFunc<'js, (A, B, C, D, E, F, G, H)> for MutFn<Fun>
where Fun: FnMut(A, B, C, D, E, F, G, H) -> R + 'js, (A, B, C, D, E, F, G, H): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F, G, H> IntoJsFunc<'js, (A, B, C, D, E, F, G, H)> for OnceFn<Fun>
where Fun: FnOnce(A, B, C, D, E, F, G, H) -> R + 'js, (A, B, C, D, E, F, G, H): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, A, B, C, D, E, F, G, H> IntoJsFunc<'js, (A, B, C, D, E, F, G, H)> for Fun
where Fun: Fn(A, B, C, D, E, F, G, H) -> R + 'js, (A, B, C, D, E, F, G, H): FromParams<'js> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut> IntoJsFunc<'js, ()> for Async<MutFn<Fun>>
where Fun: FnMut() -> Fut + 'js, (): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut> IntoJsFunc<'js, ()> for Async<OnceFn<Fun>>
where Fun: FnOnce() -> Fut + 'js, (): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut> IntoJsFunc<'js, ()> for Async<Fun>
where Fun: Fn() -> Fut + 'js, (): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A> IntoJsFunc<'js, (A,)> for Async<MutFn<Fun>>
where Fun: FnMut(A) -> Fut + 'js, (A,): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A> IntoJsFunc<'js, (A,)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A) -> Fut + 'js, (A,): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A> IntoJsFunc<'js, (A,)> for Async<Fun>
where Fun: Fn(A) -> Fut + 'js, (A,): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B> IntoJsFunc<'js, (A, B)> for Async<MutFn<Fun>>
where Fun: FnMut(A, B) -> Fut + 'js, (A, B): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B> IntoJsFunc<'js, (A, B)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A, B) -> Fut + 'js, (A, B): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B> IntoJsFunc<'js, (A, B)> for Async<Fun>
where Fun: Fn(A, B) -> Fut + 'js, (A, B): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C> IntoJsFunc<'js, (A, B, C)> for Async<MutFn<Fun>>
where Fun: FnMut(A, B, C) -> Fut + 'js, (A, B, C): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C> IntoJsFunc<'js, (A, B, C)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A, B, C) -> Fut + 'js, (A, B, C): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C> IntoJsFunc<'js, (A, B, C)> for Async<Fun>
where Fun: Fn(A, B, C) -> Fut + 'js, (A, B, C): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D> IntoJsFunc<'js, (A, B, C, D)> for Async<MutFn<Fun>>
where Fun: FnMut(A, B, C, D) -> Fut + 'js, (A, B, C, D): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D> IntoJsFunc<'js, (A, B, C, D)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A, B, C, D) -> Fut + 'js, (A, B, C, D): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D> IntoJsFunc<'js, (A, B, C, D)> for Async<Fun>
where Fun: Fn(A, B, C, D) -> Fut + 'js, (A, B, C, D): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E> IntoJsFunc<'js, (A, B, C, D, E)> for Async<MutFn<Fun>>
where Fun: FnMut(A, B, C, D, E) -> Fut + 'js, (A, B, C, D, E): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E> IntoJsFunc<'js, (A, B, C, D, E)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A, B, C, D, E) -> Fut + 'js, (A, B, C, D, E): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E> IntoJsFunc<'js, (A, B, C, D, E)> for Async<Fun>
where Fun: Fn(A, B, C, D, E) -> Fut + 'js, (A, B, C, D, E): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F> IntoJsFunc<'js, (A, B, C, D, E, F)> for Async<MutFn<Fun>>
where Fun: FnMut(A, B, C, D, E, F) -> Fut + 'js, (A, B, C, D, E, F): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F> IntoJsFunc<'js, (A, B, C, D, E, F)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A, B, C, D, E, F) -> Fut + 'js, (A, B, C, D, E, F): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F> IntoJsFunc<'js, (A, B, C, D, E, F)> for Async<Fun>
where Fun: Fn(A, B, C, D, E, F) -> Fut + 'js, (A, B, C, D, E, F): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F, G> IntoJsFunc<'js, (A, B, C, D, E, F, G)> for Async<MutFn<Fun>>
where Fun: FnMut(A, B, C, D, E, F, G) -> Fut + 'js, (A, B, C, D, E, F, G): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F, G> IntoJsFunc<'js, (A, B, C, D, E, F, G)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A, B, C, D, E, F, G) -> Fut + 'js, (A, B, C, D, E, F, G): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F, G> IntoJsFunc<'js, (A, B, C, D, E, F, G)> for Async<Fun>
where Fun: Fn(A, B, C, D, E, F, G) -> Fut + 'js, (A, B, C, D, E, F, G): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F, G, H> IntoJsFunc<'js, (A, B, C, D, E, F, G, H)> for Async<MutFn<Fun>>
where Fun: FnMut(A, B, C, D, E, F, G, H) -> Fut + 'js, (A, B, C, D, E, F, G, H): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F, G, H> IntoJsFunc<'js, (A, B, C, D, E, F, G, H)> for Async<OnceFn<Fun>>
where Fun: FnOnce(A, B, C, D, E, F, G, H) -> Fut + 'js, (A, B, C, D, E, F, G, H): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,

source§

impl<'js, R, Fun, Fut, A, B, C, D, E, F, G, H> IntoJsFunc<'js, (A, B, C, D, E, F, G, H)> for Async<Fun>
where Fun: Fn(A, B, C, D, E, F, G, H) -> Fut + 'js, (A, B, C, D, E, F, G, H): FromParams<'js> + 'js, Fut: Future<Output = R> + 'js, R: IntoJs<'js> + 'js,