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 prop<'a, 'cx: 'a, K: PropertyKey>(
&self,
cx: &'a mut Cx<'cx>,
key: K,
) -> PropOptions<'a, 'cx, Self, K>
fn prop<'a, 'cx: 'a, K: PropertyKey>( &self, cx: &'a mut Cx<'cx>, key: K, ) -> PropOptions<'a, 'cx, Self, K>
Create a
PropOptions
for accessing a property. Read moreSource§fn method<'a, 'cx: 'a, K: PropertyKey>(
&self,
cx: &'a mut Cx<'cx>,
key: K,
) -> NeonResult<BindOptions<'a, 'cx>>
fn method<'a, 'cx: 'a, K: PropertyKey>( &self, cx: &'a mut Cx<'cx>, key: K, ) -> NeonResult<BindOptions<'a, 'cx>>
Gets a property from the object as a method and binds
this
to the object. Read moreSource§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>>>
👎Deprecating in a future version: use
Object::prop()
insteadSource§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>>
👎Deprecating in a future version: use
Object::prop()
insteadSource§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>>
👎Deprecating in a future version: use
Object::prop()
insteadSource§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>
Source§fn set<'a, C: Context<'a>, K: PropertyKey, W: Value>(
&self,
cx: &mut C,
key: K,
val: Handle<'_, W>,
) -> NeonResult<bool>
fn set<'a, C: Context<'a>, K: PropertyKey, W: Value>( &self, cx: &mut C, key: K, val: Handle<'_, W>, ) -> NeonResult<bool>
👎Deprecating in a future version: use
Object::prop()
insteadfn root<'a, C: Context<'a>>(&self, cx: &mut C) -> Root<Self>
Source§fn call_method_with<'a, C, K>(
&self,
cx: &mut C,
method: K,
) -> NeonResult<CallOptions<'a>>where
C: Context<'a>,
K: PropertyKey,
fn call_method_with<'a, C, K>(
&self,
cx: &mut C,
method: K,
) -> NeonResult<CallOptions<'a>>where
C: Context<'a>,
K: PropertyKey,
👎Deprecating in a future version: use
Object::method()
insteadSource§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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more