Trait IntoJsFunc

Source
pub trait IntoJsFunc<'js, P> {
    // Required methods
    fn param_requirements() -> ParamRequirement;
    fn call<'a>(&self, params: Params<'a, 'js>) -> Result<Value<'js>>;
}
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>>

Call the function with the given parameters.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so 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,