pub trait EpochObserver: Send + Sync {
// Required method
fn epoch_changed<'life0, 'async_trait>(
&'life0 self,
conversation_id: ConversationId,
epoch: u64,
) -> Pin<Box<dyn Future<Output = Result<(), EpochChangedReportingError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}
Expand description
An EpochObserver
is notified whenever a conversation’s epoch changes.
Required Methods§
Sourcefn epoch_changed<'life0, 'async_trait>(
&'life0 self,
conversation_id: ConversationId,
epoch: u64,
) -> Pin<Box<dyn Future<Output = Result<(), EpochChangedReportingError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn epoch_changed<'life0, 'async_trait>(
&'life0 self,
conversation_id: ConversationId,
epoch: u64,
) -> Pin<Box<dyn Future<Output = Result<(), EpochChangedReportingError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
This function will be called every time a conversation’s epoch changes.
The epoch
parameter is the new epoch.
This function must not block! Foreign implementors of this inteface can
spawn a task indirecting the notification, or (unblocking) send the notification
on some kind of channel, or anything else, as long as the operation completes
quickly.
Though the signature includes an error type, that error is only present because
it is required by uniffi
in order to handle panics. This function should suppress
and ignore internal errors instead of propagating them, to the maximum extent possible.