Struct RwLockReadGuardArc

Source
pub struct RwLockReadGuardArc<T> {
    lock: NonNull<T>,
}
Expand description

An owned, reference-counting guard that releases the read lock when dropped.

Fields§

§lock: NonNull<T>

WARNING: This doesn’t actually point to a T! It points to a RwLock<T>, via a pointer obtained with Arc::into_raw. We lie for covariance.

Implementations§

Source§

impl<T> RwLockReadGuardArc<T>

Source

unsafe fn inner_arc(guard: &Self) -> ManuallyDrop<Arc<RwLock<T>>>

Constructs the underlying Arc back from the underlying RwLock.

§Safety

Both the returned Arc and the guard will decrement their reference counts on drop! So one of the two must be forgotten.

Source

unsafe fn from_arc(arc: Arc<RwLock<T>>) -> Self

Constructs a guard from the underlying Arc.

§Safety

A read lock must be acquired before calling this.

Trait Implementations§

Source§

impl<T: Debug> Debug for RwLockReadGuardArc<T>

Source§

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

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

impl<T> Deref for RwLockReadGuardArc<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<T: Display> Display for RwLockReadGuardArc<T>

Source§

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

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

impl<T> Drop for RwLockReadGuardArc<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T: Send + Sync> Send for RwLockReadGuardArc<T>

Source§

impl<T: Send + Sync> Sync for RwLockReadGuardArc<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> 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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.