1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use crate::{api, prelude::*};
use std::{mem::MaybeUninit, os::raw::c_char};
#[derive(Copy, Clone, Debug)]
pub struct JsDate(pub(crate) JsValue);
impl JsDate {
pub(crate) fn from_value(value: JsValue) -> JsDate {
JsDate(value)
}
#[cfg(feature = "v5")]
pub fn new(env: NapiEnv, time: f64) -> NapiResult<JsDate> {
let value = napi_call!(=napi_create_date, env, time);
Ok(JsDate::from_raw(env, value))
}
#[cfg(feature = "v5")]
pub fn get(&self) -> NapiResult<f64> {
Ok(napi_call!(=napi_get_date_value, self.env(), self.raw()))
}
}
napi_value_t!(JsDate);
impl NapiValueCheck for JsDate {
#[cfg(feature = "v5")]
fn check(&self) -> NapiResult<bool> {
Ok(napi_call!(=napi_is_date, self.env(), self.raw()))
}
#[cfg(not(feature = "v5"))]
fn check(&self) -> NapiResult<bool> {
Err(NapiStatus::GenericFailure)
}
}