pub struct EventEmitter { /* private fields */ }Expand description
Event publisher that manages event listeners and middleware.
Events flow through three phases:
- Internal listeners see raw events (SDK components like
wait_for_payment) - Middleware chain can transform or suppress events
- External listeners see processed events (client event handlers)
Implementations§
Source§impl EventEmitter
impl EventEmitter
Sourcepub async fn add_external_listener(
&self,
listener: Box<dyn EventListener>,
) -> String
pub async fn add_external_listener( &self, listener: Box<dyn EventListener>, ) -> String
Sourcepub async fn remove_external_listener(&self, id: &str) -> bool
pub async fn remove_external_listener(&self, id: &str) -> bool
Sourcepub async fn add_internal_listener(
&self,
listener: Box<dyn EventListener>,
) -> String
pub async fn add_internal_listener( &self, listener: Box<dyn EventListener>, ) -> String
Add an internal listener that sees all raw events before middleware processing.
Used by SDK components (e.g., wait_for_payment) that need to observe events
that middleware may suppress.
Sourcepub async fn remove_internal_listener(&self, id: &str) -> bool
pub async fn remove_internal_listener(&self, id: &str) -> bool
Remove an internal listener by its ID
Sourcepub async fn add_middleware(&self, middleware: Box<dyn EventMiddleware>)
pub async fn add_middleware(&self, middleware: Box<dyn EventMiddleware>)
Add middleware to the event processing chain.
Middleware can transform or suppress events before they reach external listeners.
Sourcepub async fn emit(&self, event: &SdkEvent)
pub async fn emit(&self, event: &SdkEvent)
Emit an event through the three-phase pipeline:
- Internal listeners see the raw event
- Middleware chain can transform or suppress
- External listeners see the processed event
pub async fn emit_synced(&self, synced: &InternalSyncedEvent)
Sourcepub async fn notify_rtsync_failed(&self)
pub async fn notify_rtsync_failed(&self)
Notify that real-time sync has failed. If the first synced event is still buffered and the wallet has already synced, release it immediately instead of waiting for a remote pull that may never arrive.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for EventEmitter
impl !RefUnwindSafe for EventEmitter
impl Send for EventEmitter
impl Sync for EventEmitter
impl Unpin for EventEmitter
impl !UnwindSafe for EventEmitter
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request