pub struct JsDate(/* private fields */);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.64e15
pub const MIN_VALUE: f64 = -8.64e15
The smallest possible Date value,
defined by ECMAScript.
Sourcepub const MAX_VALUE: f64 = 8.64e15
pub const MAX_VALUE: f64 = 8.64e15
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>
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>>
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>>>
use Object::prop() instead
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>>
use Object::prop() instead
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>>
use Object::prop() instead
Source§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>
napi-6 only.Source§fn freeze<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>
fn freeze<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>
napi-8 only.Source§fn seal<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>
fn seal<'a, C: Context<'a>>(&self, cx: &mut C) -> NeonResult<&Self>
napi-8 only.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>
use Object::prop() instead
fn 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,
use Object::method() instead
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 UnsafeUnpin 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
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>
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>
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