Skip to main content

EventBuffer

Struct EventBuffer 

Source
pub struct EventBuffer { /* private fields */ }
Expand description

Thread-safe event buffer for deferring event emissions during transactions.

Repositories push events into this buffer instead of sending them directly to the EventHub. On commit(), the UoW drains the buffer and sends all events. On rollback(), the buffer is discarded. This prevents the UI from seeing phantom state from failed transactions.

This is the Rust equivalent of SignalBuffer in the C++/Qt target.

Implementations§

Source§

impl EventBuffer

Source

pub fn new() -> Self

Source

pub fn begin_buffering(&mut self)

Start buffering. Clears any stale events from a previous cycle.

Source

pub fn push(&mut self, event: Event)

Queue an event for deferred delivery.

If buffering is not active, the event is silently dropped. (Callers should only push during an active transaction.)

Source

pub fn flush(&mut self) -> Vec<Event>

Drain all pending events and stop buffering. The caller is responsible for sending them to the EventHub.

Source

pub fn discard(&mut self)

Discard all pending events and stop buffering.

Source

pub fn is_buffering(&self) -> bool

Trait Implementations§

Source§

impl Default for EventBuffer

Source§

fn default() -> Self

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

Auto Trait Implementations§

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.