AtomicBorrowCell

Struct AtomicBorrowCell 

Source
pub struct AtomicBorrowCell<T> { /* private fields */ }
Expand description

A thread-safe reference to data contained in an AtomicLendCell

AtomicBorrowCell<T> holds a pointer to data in an AtomicLendCell<T> and checks the lender’s liveness in debug builds. It can be safely sent between threads.

Implementations§

Source§

impl<T> AtomicBorrowCell<T>

Source

pub fn as_ref(&self) -> &T

Returns a reference to the borrowed value

This method provides access to the value inside the original AtomicLendCell. In debug builds, it verifies that the owner is still alive.

Trait Implementations§

Source§

impl<T> Clone for AtomicBorrowCell<T>

Source§

fn clone(&self) -> Self

Creates a new AtomicBorrowCell that borrows the same value

Unlike reference counting, this doesn’t need to increment any counters, making it more efficient.

1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T> Deref for AtomicBorrowCell<T>

Source§

fn deref(&self) -> &Self::Target

Dereferences to the borrowed value

This provides convenient access to the borrowed value through the dereference operator (*).

Source§

type Target = T

The resulting type after dereferencing.
Source§

impl<T> Drop for AtomicBorrowCell<T>

Source§

fn drop(&mut self)

Checks if the owner is still alive when this borrow is dropped

In debug builds, this will panic if the borrow is dropped after the owner, helping to detect potential use-after-free bugs.

Source§

impl<T: Sync> Send for AtomicBorrowCell<T>

Source§

impl<T: Sync> Sync for AtomicBorrowCell<T>

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.