pub struct JsDate(/* private fields */);
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.fn freeze<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>
fn seal<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>
fn set<'a, C: Context<'a>, K: PropertyKey, W: Value>( &self, cx: &mut C, key: K, val: Handle<'_, W> ) -> NeonResult<bool>
fn root<'a, C: Context<'a>>(&self, cx: &mut C) -> Root<Self>
fn call_method_with<'a, C, K>(
&self,
cx: &mut C,
method: K
) -> NeonResult<CallOptions<'a>>where
C: Context<'a>,
K: PropertyKey,
source§impl Value for JsDate
impl Value for JsDate
Auto Trait Implementations§
impl Freeze for JsDate
impl RefUnwindSafe for JsDate
impl !Send for JsDate
impl !Sync for JsDate
impl Unpin for JsDate
impl UnwindSafe for JsDate
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more