use crate::{_js_doc, JsInstant, JsTimeout, js_uint32};
use crate::{TimeDelta, Web, WebWindow};
#[rustfmt::skip]
impl JsInstant {
pub fn now() -> Self { Web::performance_now() }
pub fn origin() -> Self { Web::performance_time_origin() }
pub fn reset(&mut self) { *self = Web::performance_now(); }
pub fn elapsed(self) -> Self { Self::from_millis_f64(Web::performance_now().ms - self.ms) }
pub fn delta_elapsed(self) -> TimeDelta { TimeDelta::from_js(self.elapsed()) }
}
#[rustfmt::skip]
impl JsTimeout {
#[doc = _js_doc!("Window", "setTimeout")]
pub fn timeout(callback: extern "C" fn(), delay_ms: js_uint32) -> Self {
WebWindow::set_timeout(callback, delay_ms) }
#[doc = _js_doc!("Window", "setInterval")]
pub fn interval(callback: extern "C" fn(), interval_ms: js_uint32) -> Self {
WebWindow::set_timeout(callback, interval_ms) }
pub fn eval(js_code: &str) { WebWindow::eval(js_code) }
#[doc = _js_doc!("Window", "setTimeout")]
pub fn eval_timeout(js_code: &str, delay_ms: js_uint32) -> Self {
WebWindow::eval_timeout(js_code, delay_ms) }
#[doc = _js_doc!("Window", "setInterval")]
pub fn eval_interval(js_code: &str, interval_ms: js_uint32) -> Self {
WebWindow::eval_interval(js_code, interval_ms) }
#[doc = _js_doc!("Window", "clearTimeout")]
#[doc = _js_doc!("Window", "clearInterval")]
pub fn clear(self) { WebWindow::clear_timeout(self); }
}