Skip to main content

TryCastFromJs

Trait TryCastFromJs 

Source
pub trait TryCastFromJs
where Self: CastFromJs + RefFromWasmAbi<Abi = WasmPtr<WasmRefCell<Self>>> + LongRefFromWasmAbi<Abi = WasmPtr<WasmRefCell<Self>>> + Clone,
{ type Error: Display + From<Error>; // Required method fn try_cast_from<'a, R>(value: &'a R) -> Result<Cast<'a, Self>, Self::Error> where R: AsRef<JsValue> + 'a; // Provided methods fn try_owned_from(value: impl AsRef<JsValue>) -> Result<Self, Self::Error> { ... } fn try_captured_cast_from( js_value: impl AsRef<JsValue>, ) -> Result<Cast<'static, Self>, Self::Error> { ... } fn resolve<'a, R>( js: &'a R, create: impl FnOnce() -> Result<Self, Self::Error>, ) -> Result<Cast<'a, Self>, Self::Error> where R: AsRef<JsValue> + 'a { ... } fn resolve_cast<'a, R>( js: &'a R, create: impl FnOnce() -> Result<Cast<'a, Self>, Self::Error>, ) -> Result<Cast<'a, Self>, Self::Error> where R: AsRef<JsValue> + 'a { ... } }
Expand description

TryCastFromJs trait is meant to be implemented by the developer on any struct implementing CastFromJs trait. This trait provides a way to attempt to cast a JsValue into a Rust object or interpret the source data and create a temporary struct owned by by the Cast.

Required Associated Types§

Source

type Error: Display + From<Error>

Error type returned by the cast, displayable and convertible from Error.

Required Methods§

Source

fn try_cast_from<'a, R>(value: &'a R) -> Result<Cast<'a, Self>, Self::Error>
where R: AsRef<JsValue> + 'a,

Try to cast a JsValue into a Rust object. This should be user-defined function that attempts to cast a JsValue into a Rust object or interpret a source data and create a temporary struct owned by by the Cast.

Provided Methods§

Source

fn try_owned_from(value: impl AsRef<JsValue>) -> Result<Self, Self::Error>

Perform a user cast and consume the Cast container. This function will return a temporary user-created object created during try_cast_from or a clone of the casted reference.

Source

fn try_captured_cast_from( js_value: impl AsRef<JsValue>, ) -> Result<Cast<'static, Self>, Self::Error>

Cast a JsValue into a Rust object while capturing (owning) the source JsValue, yielding a 'static Cast that keeps the reference alive.

Source

fn resolve<'a, R>( js: &'a R, create: impl FnOnce() -> Result<Self, Self::Error>, ) -> Result<Cast<'a, Self>, Self::Error>
where R: AsRef<JsValue> + 'a,

Try to cast a JsValue into a Rust object, in cast of failure invoke a user-supplied closure that can try to create an instance of the object based on the supplied JsValue.

Source

fn resolve_cast<'a, R>( js: &'a R, create: impl FnOnce() -> Result<Cast<'a, Self>, Self::Error>, ) -> Result<Cast<'a, Self>, Self::Error>
where R: AsRef<JsValue> + 'a,

Try to cast a JsValue into a Rust object, in cast of failure invoke a user-supplied closure that can try to create an instance of the object based on the supplied JsValue. Unlike the resolve function, this function expects create closure to return a Cast. This is useful when routing the creation of the object to another function that is capable of creating a compatible Cast wrapper.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§