qcell

Struct TLCellOwner

Source
pub struct TLCellOwner<Q: 'static> { /* private fields */ }
Expand description

Borrowing-owner of zero or more TLCell instances.

See crate documentation.

Implementations§

Source§

impl<Q: 'static> TLCellOwner<Q>

Source

pub fn new() -> Self

Create the singleton owner instance. Each owner may be used to create many TLCell instances. There may be only one instance of this type per thread at any given time for each different marker type Q. This call panics if a second simultaneous instance is created. Since the owner is only valid to use in the thread it is created in, it does not support Send or Sync.

Source

pub fn cell<T>(&self, value: T) -> TLCell<Q, T>

Create a new cell owned by this owner instance. See also TLCell::new.

Source

pub fn ro<'a, T: ?Sized>(&'a self, tc: &'a TLCell<Q, T>) -> &'a T

Borrow contents of a TLCell immutably (read-only). Many TLCell instances can be borrowed immutably at the same time from the same owner.

Source

pub fn rw<'a, T: ?Sized>(&'a mut self, tc: &'a TLCell<Q, T>) -> &'a mut T

Borrow contents of a TLCell mutably (read-write). Only one TLCell at a time can be borrowed from the owner using this call. The returned reference must go out of scope before another can be borrowed.

Source

pub fn rw2<'a, T: ?Sized, U: ?Sized>( &'a mut self, tc1: &'a TLCell<Q, T>, tc2: &'a TLCell<Q, U>, ) -> (&'a mut T, &'a mut U)

Borrow contents of two TLCell instances mutably. Panics if the two TLCell instances point to the same memory.

Source

pub fn rw3<'a, T: ?Sized, U: ?Sized, V: ?Sized>( &'a mut self, tc1: &'a TLCell<Q, T>, tc2: &'a TLCell<Q, U>, tc3: &'a TLCell<Q, V>, ) -> (&'a mut T, &'a mut U, &'a mut V)

Borrow contents of three TLCell instances mutably. Panics if any pair of TLCell instances point to the same memory.

Trait Implementations§

Source§

impl<Q: 'static> Default for TLCellOwner<Q>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<Q: 'static> Drop for TLCellOwner<Q>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<Q> Freeze for TLCellOwner<Q>

§

impl<Q> RefUnwindSafe for TLCellOwner<Q>

§

impl<Q> !Send for TLCellOwner<Q>

§

impl<Q> !Sync for TLCellOwner<Q>

§

impl<Q> Unpin for TLCellOwner<Q>

§

impl<Q> UnwindSafe for TLCellOwner<Q>

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

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.