pub trait TryFromJsRef<'cx>where
Self: Sealed + Sized,{
type Guard: Deref<Target = Self>;
type Error: TryIntoJs<'cx>;
// Required method
fn try_from_js_ref(
cx: &mut Cx<'cx>,
v: Handle<'cx, JsValue>,
) -> NeonResult<Result<Self::Guard, Self::Error>>;
// Provided method
fn from_js_ref(
cx: &mut Cx<'cx>,
v: Handle<'cx, JsValue>,
) -> NeonResult<Self::Guard> { ... }
}Expand description
Extract a borrowed reference to Rust data from a JavaScript value
This trait is similar to TryFromJs, but instead of extracting an owned value,
it returns a guard that dereferences to a borrowed reference. This is useful for
efficiently passing class instances by reference in method calls.
§Example
ⓘ
// In a class method, accept another instance by reference
pub fn distance(&self, other: &Point) -> f64 {
// other is borrowed, not cloned
}The macro will automatically use TryFromJsRef when it sees &T parameters.
Required Associated Types§
Required Methods§
Sourcefn try_from_js_ref(
cx: &mut Cx<'cx>,
v: Handle<'cx, JsValue>,
) -> NeonResult<Result<Self::Guard, Self::Error>>
fn try_from_js_ref( cx: &mut Cx<'cx>, v: Handle<'cx, JsValue>, ) -> NeonResult<Result<Self::Guard, Self::Error>>
Extract a borrowed reference from a JavaScript value
Provided Methods§
Sourcefn from_js_ref(
cx: &mut Cx<'cx>,
v: Handle<'cx, JsValue>,
) -> NeonResult<Self::Guard>
fn from_js_ref( cx: &mut Cx<'cx>, v: Handle<'cx, JsValue>, ) -> NeonResult<Self::Guard>
Same as TryFromJsRef::try_from_js_ref, but all errors are converted to JavaScript exceptions
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".