#[repr(transparent)]pub struct JsDate(_);
Available on crate feature
napi-5
only.Expand description
The type of JavaScript
Date
objects.
Example
The following shows an example of converting Rust
SystemTime
timestamps to JavaScript Date
objects.
use easy_cast::Cast; // for safe numeric conversions
use neon::types::JsDate;
use std::{error::Error, fs::File, time::SystemTime};
/// Return the "modified" timestamp for the file at the given path.
fn last_modified(path: &str) -> Result<f64, Box<dyn Error>> {
Ok(File::open(&path)?
.metadata()?
.modified()?
.duration_since(SystemTime::UNIX_EPOCH)?
.as_millis()
.try_cast()?)
}
fn modified(mut cx: FunctionContext) -> JsResult<JsDate> {
let path: Handle<JsString> = cx.argument(0)?;
last_modified(&path.value(&mut cx))
.and_then(|n| Ok(cx.date(n)?))
.or_else(|err| cx.throw_error(err.to_string()))
}
Implementations§
source§impl JsDate
impl JsDate
sourcepub const MIN_VALUE: f64 = -8.64E+15f64
pub const MIN_VALUE: f64 = -8.64E+15f64
The smallest possible Date
value,
defined by ECMAScript.
sourcepub const MAX_VALUE: f64 = 8.64E+15f64
pub const MAX_VALUE: f64 = 8.64E+15f64
The largest possible Date
value,
defined by ECMAScript.
sourcepub fn new<'a, C: Context<'a>, T: Into<f64>>(
cx: &mut C,
value: T
) -> Result<Handle<'a, JsDate>, DateError>
pub fn new<'a, C: Context<'a>, T: Into<f64>>( cx: &mut C, value: T ) -> Result<Handle<'a, JsDate>, DateError>
Creates a new Date
. It errors when value
is outside the range of valid JavaScript
Date
values. When value
is NaN
, the operation will succeed but with an
invalid Date
.
sourcepub fn new_lossy<'a, C: Context<'a>, V: Into<f64>>(
cx: &mut C,
value: V
) -> Handle<'a, JsDate>
pub fn new_lossy<'a, C: Context<'a>, V: Into<f64>>( cx: &mut C, value: V ) -> Handle<'a, JsDate>
Creates a new Date
with lossy conversion for out of bounds Date
values.
Out of bounds values will be treated as NaN
.
sourcepub fn value<'a, C: Context<'a>>(&self, cx: &mut C) -> f64
pub fn value<'a, C: Context<'a>>(&self, cx: &mut C) -> f64
Gets the Date
’s value. An invalid Date
will return std::f64::NAN
.
sourcepub fn is_valid<'a, C: Context<'a>>(&self, cx: &mut C) -> bool
pub fn is_valid<'a, C: Context<'a>>(&self, cx: &mut C) -> bool
Checks if the Date
’s value is valid. A Date
is valid if its value is
between JsDate::MIN_VALUE
and JsDate::MAX_VALUE
or if it is NaN
.
Trait Implementations§
source§impl Object for JsDate
impl Object for JsDate
source§fn get_opt<'a, V: Value, C: Context<'a>, K: PropertyKey>(
&self,
cx: &mut C,
key: K
) -> NeonResult<Option<Handle<'a, V>>>
fn get_opt<'a, V: Value, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K ) -> NeonResult<Option<Handle<'a, V>>>
Gets a property from a JavaScript object that may be
undefined
and
attempts to downcast the value if it existed.source§fn get_value<'a, C: Context<'a>, K: PropertyKey>(
&self,
cx: &mut C,
key: K
) -> NeonResult<Handle<'a, JsValue>>
fn get_value<'a, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K ) -> NeonResult<Handle<'a, JsValue>>
source§fn get<'a, V: Value, C: Context<'a>, K: PropertyKey>(
&self,
cx: &mut C,
key: K
) -> NeonResult<Handle<'a, V>>
fn get<'a, V: Value, C: Context<'a>, K: PropertyKey>( &self, cx: &mut C, key: K ) -> NeonResult<Handle<'a, V>>
Gets a property from a JavaScript object and attempts to downcast as a specific type.
Equivalent to calling
obj.get_value(&mut cx)?.downcast_or_throw(&mut cx)
. Read moresource§fn get_own_property_names<'a, C: Context<'a>>(
&self,
cx: &mut C
) -> JsResult<'a, JsArray>
fn get_own_property_names<'a, C: Context<'a>>( &self, cx: &mut C ) -> JsResult<'a, JsArray>
Available on crate feature
napi-6
only.