Struct ThreadSafeStruct

Source
pub struct ThreadSafeStruct<T> {
    pub value: Mutex<Option<T>>,
}

Fields§

§value: Mutex<Option<T>>

Implementations§

Source§

impl<T> ThreadSafeStruct<T>

Source

pub fn with( &self, action: impl FnOnce(&mut T), ) -> Result<(), ThreadSafeStructError>

Borrows the value from the mutex, mutably in order to work with/on

Source

pub fn set(&self, value: Option<T>)

Sets the mutex to a value or None

This provides no guarantee that other threads don’t change it straight away so if you call with() after value may have changed

I.e. two threads, one calls set, the other calls with set thread wins, and the with thread waits for the lock as soon as thread set finishes, thread with will do its thing

Auto Trait Implementations§

§

impl<T> !Freeze for ThreadSafeStruct<T>

§

impl<T> RefUnwindSafe for ThreadSafeStruct<T>

§

impl<T> Send for ThreadSafeStruct<T>
where T: Send,

§

impl<T> Sync for ThreadSafeStruct<T>
where T: Send,

§

impl<T> Unpin for ThreadSafeStruct<T>
where T: Unpin,

§

impl<T> UnwindSafe for ThreadSafeStruct<T>

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.