[][src]Struct ruspiro_lock::datalock::DataLock

pub struct DataLock<T> { /* fields omitted */ }

An exclusive access lock around the given data

Methods

impl<T> DataLock<T>[src]

pub 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

    let secure_data: DataLock<u32> = DataLock::new(10);
 
    if let Some(data) = secure_data.try_lock() {
        assert_eq!(*data, 10);
    }

Auto Trait Implementations

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

impl<T> !Sync for DataLock<T>

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

Blanket Implementations

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> Into<U> for T where
    U: From<T>, 
[src]

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

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.

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

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

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