pub struct EventBus { /* private fields */ }Expand description
Thread-safe event bus for runtime events
The event bus allows subscribers to register listeners that will be called when events are emitted. All listener calls are synchronous and blocking. Uses lock-free arc-swap for optimal performance when emitting frequent events.
Implementations§
Source§impl EventBus
impl EventBus
Sourcepub fn subscribe<F>(&self, listener: F) -> ListenerId
pub fn subscribe<F>(&self, listener: F) -> ListenerId
Register an event listener
Returns a listener ID that can be used to unsubscribe (future enhancement). The listener will be called for all events emitted on this bus. Uses read-copy-update (RCU) for lock-free hot-reload.
Sourcepub fn emit(&self, event: &Event)
pub fn emit(&self, event: &Event)
Emit an event to all listeners
Listeners are called synchronously in the order they were registered. If a listener panics, the panic is caught and other listeners continue. Lock-free load for optimal performance on frequent emissions.
Sourcepub fn progress(&self, data: ProgressState)
pub fn progress(&self, data: ProgressState)
Emit a progress event
Source§impl EventBus
impl EventBus
Sourcepub fn create_log_adapter(&self) -> LogAdapter
pub fn create_log_adapter(&self) -> LogAdapter
Create a log adapter that forwards log crate events to the event bus
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for EventBus
impl !UnwindSafe for EventBus
impl Freeze for EventBus
impl Send for EventBus
impl Sync for EventBus
impl Unpin for EventBus
impl UnsafeUnpin for EventBus
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.