Struct wit_bindgen::Resource

source ·
pub struct Resource<T: WasmResource> { /* private fields */ }
Expand description

A type which represents a component model resource, either imported or exported into this component.

This is a low-level wrapper which handles the lifetime of the resource (namely this has a destructor). The T provided defines the component model intrinsics that this wrapper uses.

One of the chief purposes of this type is to provide Deref implementations to access the underlying data when it is owned.

This type is primarily used in generated code for exported and imported resources.

Implementations§

source§

impl<T: WasmResource> Resource<T>

source

pub fn new(val: T) -> Resource<T>
where T: RustResource,

Creates a new Rust-defined resource from the underlying representation T.

This will move T onto the heap to create a single pointer to represent it which is then wrapped up in a component model resource.

source

pub fn into_inner(resource: Self) -> T
where T: RustResource,

Takes back ownership of the object, dropping the resource handle.

Trait Implementations§

source§

impl<T: WasmResource> Debug for Resource<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: RustResource> Deref for Resource<T>

§

type Target = T

The resulting type after dereferencing.
source§

fn deref(&self) -> &T

Dereferences the value.
source§

impl<T: RustResource> DerefMut for Resource<T>

source§

fn deref_mut(&mut self) -> &mut T

Mutably dereferences the value.
source§

impl<T: WasmResource> Drop for Resource<T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for Resource<T>
where T: RefUnwindSafe,

§

impl<T> Send for Resource<T>
where T: Send,

§

impl<T> Sync for Resource<T>
where T: Sync,

§

impl<T> Unpin for Resource<T>

§

impl<T> UnwindSafe for Resource<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.