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