[][src]Struct ruspiro_lock::DataLock

#[repr(C)]
pub struct DataLock<T> { /* fields omitted */ }

An exclusive access lock around the given data

Methods

impl<T> DataLock<T>[src]

pub const fn new(value: T) -> Self[src]

Create a new data access guarding lock

pub fn try_lock(&self) -> Option<TryDataLock<T>>[src]

Try to lock the guarded data for mutual exclusive access. Returns None if the lock failes or Some(TryDataLock). The actual data, the TryDataLock wraps could be conviniently accessed by dereferencing it.

Example

static DATA: DataLock<u32> = DataLock::new(10);
    if let Some(data) = DATA.try_lock() {
        // do something with data
    }

pub fn lock(&self) -> TryDataLock<T>[src]

Lock the guarded data for mutual exclusive access. This blocks until the data could be successfully locked. The locked data will be returned as TryDataLock. Simply derefrencing this allows access to the contained data value.

Example

static DATA: DataLock<u32> = DataLock::new(10);
    let mut data = DATA.lock();
    // do something with data
    *data = 15;

Trait Implementations

impl<T: Debug> Debug for DataLock<T>[src]

impl<T> Send for DataLock<T>[src]

impl<T> Sync for DataLock<T>[src]

Auto Trait Implementations

impl<T> Unpin for DataLock<T> where
    T: Unpin

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.