Skip to main content

ValueReadAccess

Struct ValueReadAccess 

Source
pub struct ValueReadAccess<'a, T: 'a + ?Sized> { /* private fields */ }
Expand description

Read guard over a value, obtained from a lifetime or one of its handles.

Derefs to the value and releases the read claim on drop.

Implementations§

Source§

impl<'a, T: ?Sized> ValueReadAccess<'a, T>

Source

pub unsafe fn new_raw(data: &'a T, lifetime: LifetimeState) -> Self

Builds a guard from parts, without going through the state checks.

§Safety

The read claim on lifetime must already be acquired, since dropping this guard releases one. data must be the value that lifetime guards.

Source§

impl<'a, T: ?Sized> ValueReadAccess<'a, T>

Source

pub fn remap<U>( self, f: impl FnOnce(&T) -> Option<&U>, ) -> Result<ValueReadAccess<'a, U>, Self>

Narrows the guard down to a part of the value, for example one field.

Gives the guard back unchanged when f returns None.

Trait Implementations§

Source§

impl<T: ?Sized> Deref for ValueReadAccess<'_, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl<T: ?Sized> Drop for ValueReadAccess<'_, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'a, T> Freeze for ValueReadAccess<'a, T>
where &'a T: Freeze, T: ?Sized,

§

impl<'a, T> RefUnwindSafe for ValueReadAccess<'a, T>

§

impl<'a, T> Send for ValueReadAccess<'a, T>
where &'a T: Send, T: ?Sized,

§

impl<'a, T> Sync for ValueReadAccess<'a, T>
where &'a T: Sync, T: ?Sized,

§

impl<'a, T> Unpin for ValueReadAccess<'a, T>
where &'a T: Unpin, T: ?Sized,

§

impl<'a, T> UnsafeUnpin for ValueReadAccess<'a, T>
where &'a T: UnsafeUnpin, T: ?Sized,

§

impl<'a, T> UnwindSafe for ValueReadAccess<'a, T>
where &'a T: UnwindSafe, T: ?Sized,

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> Finalize for T

Source§

unsafe fn finalize_raw(data: *mut ())

Drops the value stored at data in place. 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, 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.