napi-rs/napi/src/js_values/global.rs

58 lines
1.5 KiB
Rust
Raw Normal View History

2020-10-03 00:23:21 +09:00
use std::convert::TryInto;
use super::*;
use crate::Env;
pub struct JsGlobal(pub(crate) Value);
pub struct JsTimeout(pub(crate) Value);
impl JsGlobal {
#[inline]
2020-10-03 00:23:21 +09:00
pub fn set_interval(&self, handler: JsFunction, interval: f64) -> Result<JsTimeout> {
let func: JsFunction = self.get_named_property("setInterval")?;
func
.call(
None,
&[
handler.into_unknown(),
unsafe { Env::from_raw(self.0.env) }
2020-10-03 00:23:21 +09:00
.create_double(interval)?
.into_unknown(),
],
)
.and_then(|ret| ret.try_into())
}
2020-10-03 01:05:43 +09:00
pub fn clear_interval(&self, timer: JsTimeout) -> Result<JsUndefined> {
let func: JsFunction = self.get_named_property("clearInterval")?;
func
.call(None, &[timer.into_unknown()])
.and_then(|ret| ret.try_into())
}
#[inline]
2020-10-03 01:05:43 +09:00
pub fn set_timeout(&self, handler: JsFunction, interval: f64) -> Result<JsTimeout> {
let func: JsFunction = self.get_named_property("setTimeout")?;
func
.call(
None,
&[
handler.into_unknown(),
unsafe { Env::from_raw(self.0.env) }
2020-10-03 01:05:43 +09:00
.create_double(interval)?
.into_unknown(),
],
)
.and_then(|ret| ret.try_into())
}
#[inline]
2020-10-03 01:05:43 +09:00
pub fn clear_timeout(&self, timer: JsTimeout) -> Result<JsUndefined> {
let func: JsFunction = self.get_named_property("clearTimeout")?;
func
.call(None, &[timer.into_unknown()])
.and_then(|ret| ret.try_into())
}
2020-10-03 00:23:21 +09:00
}