Struct rustler::resource::ResourceArc
source · [−]pub struct ResourceArc<T> where
T: ResourceTypeProvider, { /* private fields */ }
Expand description
A reference to a resource of type T
.
This type is like std::sync::Arc
: it provides thread-safe, reference-counted storage for Rust
data that can be shared across threads. Data stored this way is immutable by default. If you
need to modify data in a resource, use a std::sync::Mutex
or RwLock
.
Rust code and Erlang code can both have references to the same resource at the same time. Rust
code uses ResourceArc
; in Erlang, a reference to a resource is a kind of term. You can
convert back and forth between the two using Encoder
and Decoder
.
Implementations
sourceimpl<T> ResourceArc<T> where
T: ResourceTypeProvider,
impl<T> ResourceArc<T> where
T: ResourceTypeProvider,
Trait Implementations
sourceimpl<T> Clone for ResourceArc<T> where
T: ResourceTypeProvider,
impl<T> Clone for ResourceArc<T> where
T: ResourceTypeProvider,
sourceimpl<'a, T> Decoder<'a> for ResourceArc<T> where
T: ResourceTypeProvider + 'a,
impl<'a, T> Decoder<'a> for ResourceArc<T> where
T: ResourceTypeProvider + 'a,
sourceimpl<T> Deref for ResourceArc<T> where
T: ResourceTypeProvider,
impl<T> Deref for ResourceArc<T> where
T: ResourceTypeProvider,
sourceimpl<T> Drop for ResourceArc<T> where
T: ResourceTypeProvider,
impl<T> Drop for ResourceArc<T> where
T: ResourceTypeProvider,
sourcefn drop(&mut self)
fn drop(&mut self)
When a ResourceArc
is dropped, the reference count is decremented. If
there are no other references to the resource, the T
value is dropped.
However, note that in general, the Rust value in a resource is dropped at an unpredictable time: whenever the VM decides to do garbage collection.
sourceimpl<T> Encoder for ResourceArc<T> where
T: ResourceTypeProvider,
impl<T> Encoder for ResourceArc<T> where
T: ResourceTypeProvider,
impl<T> Send for ResourceArc<T> where
T: ResourceTypeProvider,
impl<T> Sync for ResourceArc<T> where
T: ResourceTypeProvider,
Auto Trait Implementations
impl<T> RefUnwindSafe for ResourceArc<T> where
T: RefUnwindSafe,
impl<T> Unpin for ResourceArc<T>
impl<T> UnwindSafe for ResourceArc<T> where
T: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more