pub struct EventBus<A: Action, C: ComponentId> { /* private fields */ }Expand description
Event bus that manages subscriptions and dispatches events
Generic over:
A: The action type (must implementAction)C: The component ID type (must implementComponentId)
Implementations§
Source§impl<A: Action, C: ComponentId> EventBus<A, C>
impl<A: Action, C: ComponentId> EventBus<A, C>
Sourcepub fn new(action_tx: UnboundedSender<A>) -> Self
pub fn new(action_tx: UnboundedSender<A>) -> Self
Create a new event bus
Sourcepub fn subscribe(&mut self, component: C, event_type: EventType)
pub fn subscribe(&mut self, component: C, event_type: EventType)
Subscribe a component to an event type
Sourcepub fn subscribe_many(&mut self, component: C, event_types: &[EventType])
pub fn subscribe_many(&mut self, component: C, event_types: &[EventType])
Subscribe a component to multiple event types
Sourcepub fn unsubscribe(&mut self, component: C, event_type: EventType)
pub fn unsubscribe(&mut self, component: C, event_type: EventType)
Unsubscribe a component from an event type
Sourcepub fn unsubscribe_all(&mut self, component: C)
pub fn unsubscribe_all(&mut self, component: C)
Unsubscribe a component from all event types
Sourcepub fn get_subscribers(&self, event_type: EventType) -> Vec<C>
pub fn get_subscribers(&self, event_type: EventType) -> Vec<C>
Get subscribers for an event type
Sourcepub fn get_event_subscribers(&self, event: &Event<C>) -> Vec<C>
pub fn get_event_subscribers(&self, event: &Event<C>) -> Vec<C>
Get all subscribers that should receive an event
Sourcepub fn context_mut(&mut self) -> &mut EventContext<C>
pub fn context_mut(&mut self) -> &mut EventContext<C>
Get mutable reference to context
Sourcepub fn context(&self) -> &EventContext<C>
pub fn context(&self) -> &EventContext<C>
Get reference to context
Sourcepub fn create_event(&self, kind: EventKind) -> Event<C>
pub fn create_event(&self, kind: EventKind) -> Event<C>
Create an event with current context
Sourcepub fn action_tx(&self) -> &UnboundedSender<A>
pub fn action_tx(&self) -> &UnboundedSender<A>
Get the action sender
Sourcepub fn update_mouse_position(&mut self, x: u16, y: u16)
pub fn update_mouse_position(&mut self, x: u16, y: u16)
Update context from mouse position
Sourcepub fn update_modifiers(&mut self, modifiers: KeyModifiers)
pub fn update_modifiers(&mut self, modifiers: KeyModifiers)
Update modifiers from key event
Auto Trait Implementations§
impl<A, C> Freeze for EventBus<A, C>where
C: Freeze,
impl<A, C> RefUnwindSafe for EventBus<A, C>where
C: RefUnwindSafe,
impl<A, C> Send for EventBus<A, C>where
C: Send,
impl<A, C> Sync for EventBus<A, C>where
C: Sync,
impl<A, C> Unpin for EventBus<A, C>where
C: Unpin,
impl<A, C> UnwindSafe for EventBus<A, C>where
C: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 more