Struct OutputListener

Source
pub struct OutputListener<T> { /* private fields */ }
Expand description

Listener implements the emitter side of the [Output Tracking pattern].

Implementations§

Source§

impl<T> Listener<T>

Source

pub fn emit(&self, event: &T)
where T: Clone,

Emit a new event to attached listeners.

Source

pub fn emit_with(&self, event_source: impl FnMut() -> T)

Emit a new event to attached listeners.

Calls the given closure to generate the event for each tracker. This allows to skip expensive setup when no trackers are connected.

Source

pub fn emit_with_cached(&self, cached_event_source: impl FnOnce() -> T)
where T: Clone,

Emit a new event to attached listeners.

Calls the given closure at most once to generate the event. Afterwards, the generated event is cached and reused for future trackers. This allows to skip expensive setup when no trackers are connected.

Source

pub fn track(&self) -> Tracker<T>

Create a new Tracker, connected to this listener.

Trait Implementations§

Source§

impl<T> Default for Listener<T>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<T> !Freeze for Listener<T>

§

impl<T> !RefUnwindSafe for Listener<T>

§

impl<T> Send for Listener<T>
where T: Send + Sync,

§

impl<T> Sync for Listener<T>
where T: Send + Sync,

§

impl<T> Unpin for Listener<T>

§

impl<T> !UnwindSafe for Listener<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.