[−][src]Struct rquickjs::Function
Rust representation of a javascript function.
Methods
impl<'js> Function<'js>
[src]
pub fn new_static<F, N>(ctx: Ctx<'js>, name: N) -> Result<Self> where
N: Into<Vec<u8>>,
F: StaticFn<'js>,
[src]
N: Into<Vec<u8>>,
F: StaticFn<'js>,
Create a new static function.
Static functions do not have any context unlike closures and must implement
StaticFn
.
Static functions have minimal overhead compared to other functions but
have more restrictions and require a type to 'carry' the function.
Example
use rquickjs::function::StaticFn; fn print<'js>(ctx: Ctx<'js>, _this: (), args: (String,)) -> Result<()>{ println!("{}",args.0); Ok(()) } static_fn!(print,FnPrint,(), (String,),()); context.with(|ctx|{ let print = Function::new_static::<FnPrint,_>(ctx, "print").unwrap(); ctx.globals().set("print", print); // prints 'hello from javascript' to stdout ctx.eval::<(),_>("print('hello from javascript!'); "); });
pub fn new<F, A, T, R, N>(ctx: Ctx<'js>, name: N, func: F) -> Result<Self> where
N: Into<Vec<u8>>,
A: FromJsMulti<'js>,
T: FromJs<'js>,
R: ToJs<'js>,
F: FnMut(Ctx<'js>, T, A) -> Result<R> + 'static,
[src]
N: Into<Vec<u8>>,
A: FromJsMulti<'js>,
T: FromJs<'js>,
R: ToJs<'js>,
F: FnMut(Ctx<'js>, T, A) -> Result<R> + 'static,
pub fn call<A, R>(&self, args: A) -> Result<R> where
A: ToJsMulti<'js>,
R: FromJs<'js>,
[src]
A: ToJsMulti<'js>,
R: FromJs<'js>,
Call a function with given arguments with the this
as the global context object.
pub fn call_on<A, T, R>(&self, this: T, args: A) -> Result<R> where
A: ToJsMulti<'js>,
R: FromJs<'js>,
T: ToJs<'js>,
[src]
A: ToJsMulti<'js>,
R: FromJs<'js>,
T: ToJs<'js>,
Call a function with given arguments on a given this
pub fn into_object(self) -> Object<'js>
[src]
Trait Implementations
impl<'js> Clone for Function<'js>
[src]
impl<'js> Debug for Function<'js>
[src]
impl<'js> FromJs<'js> for Function<'js>
[src]
impl<'js> PartialEq<Function<'js>> for Function<'js>
[src]
impl<'js> StructuralPartialEq for Function<'js>
[src]
impl<'js> ToAtom<'js> for Function<'js>
[src]
impl<'js> ToJs<'js> for Function<'js>
[src]
Auto Trait Implementations
impl<'js> !RefUnwindSafe for Function<'js>
impl<'js> !Send for Function<'js>
impl<'js> !Sync for Function<'js>
impl<'js> Unpin for Function<'js>
impl<'js> UnwindSafe for Function<'js>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,