Struct yrs::observer::ObserverMut

source ·
pub struct ObserverMut<E> { /* private fields */ }
Expand description

Data structure used to handle publish/subscribe callbacks of specific type. Observers perform subscriber changes in thread-safe manner, using atomic hardware intrinsics.

Implementations§

source§

impl<E> ObserverMut<E>

source

pub fn new() -> Self

Creates a new [ObserverMut with no active callbacks.

source

pub fn clean(&self)

Cleanup already released subscriptions. Whenever a Subscription is dropped, the callback is released. However, the weak reference to callback may still be kept around until it becomes touched by operations such as Observer::subscribe or Observer::callbacks.

This method allows to perform stale callback cleanup without waiting for callbacks to be visited.

source

pub fn subscribe<F>(&self, callback: F) -> Subscription
where F: Fn(&mut TransactionMut<'_>, &mut E) + 'static,

Subscribes a callback parameter to a current Observer. Returns a subscription object which - when dropped - will unsubscribe current callback.

source

pub fn callbacks(&self) -> Option<CallbacksMut<'_, E>>

Returns a snapshot of callbacks subscribed to this observer at the moment when this method has been called. This snapshot can be iterated over to get access to individual callbacks and trigger them.

Trait Implementations§

source§

impl<E: Debug> Debug for ObserverMut<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E> Default for ObserverMut<E>

source§

fn default() -> Self

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

impl<E: Send> Send for ObserverMut<E>

source§

impl<E: Sync> Sync for ObserverMut<E>

Auto Trait Implementations§

§

impl<E> !Freeze for ObserverMut<E>

§

impl<E> !RefUnwindSafe for ObserverMut<E>

§

impl<E> Unpin for ObserverMut<E>

§

impl<E> !UnwindSafe for ObserverMut<E>

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

§

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

§

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.