File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -388,13 +388,20 @@ pub trait MessageSendEventsProvider {
388
388
///
389
389
/// [`process_pending_events`]: Self::process_pending_events
390
390
pub trait EventsProvider {
391
- /// Processes any generated events with the given event handler.
391
+ /// Processes any events generated since the last call using the given event handler.
392
+ ///
393
+ /// Subsequent calls must only process new events. However, handlers must be capable of handling
394
+ /// duplicate events across process restarts. This may occur if the provider was recovered from
395
+ /// an old state (i.e., it hadn't been successfully persisted after processing pending events).
392
396
fn process_pending_events < H : Deref > ( & self , handler : H ) where H :: Target : EventHandler ;
393
397
}
394
398
395
399
/// A trait implemented for objects handling events from [`EventsProvider`].
396
400
pub trait EventHandler {
397
401
/// Handles the given [`Event`].
402
+ ///
403
+ /// See [`EventsProvider::process_pending_events`] for details that must be considered when
404
+ /// implementing this method.
398
405
fn handle_event ( & self , event : Event ) ;
399
406
}
400
407
You can’t perform that action at this time.
0 commit comments