pub struct ReplayHarness { /* private fields */ }Implementations§
Source§impl ReplayHarness
impl ReplayHarness
pub fn props(mode: ReplayMode) -> Props<Self>
Sourcepub fn with_journal(
mode: ReplayMode,
journal: Arc<dyn Journal>,
persistence_id: impl Into<String>,
) -> Props<Self>
pub fn with_journal( mode: ReplayMode, journal: Arc<dyn Journal>, persistence_id: impl Into<String>, ) -> Props<Self>
Build a harness whose Record events are mirrored to a
atomr-persistence Journal under persistence_id. The
journal contract requires sequence numbers start at 1; this
harness initializes its counter to whatever
journal.highest_sequence_nr(persistence_id, 0) returns at
pre_start-time + 1.
Sourcepub fn journal(&self) -> Arc<Mutex<Vec<JournalEntry>>>
pub fn journal(&self) -> Arc<Mutex<Vec<JournalEntry>>>
Test/diagnostic snapshot — bypasses the mailbox.
Sourcepub async fn replay_all<F>(&self, sink_fn: F)
pub async fn replay_all<F>(&self, sink_fn: F)
Drive a replay through sink_fn. Call after LoadJournal
while in ReplayMode::Replay. The closure is invoked once
per entry; the harness awaits each reply before advancing.
Trait Implementations§
Source§impl Actor for ReplayHarness
impl Actor for ReplayHarness
type Msg = ReplayMsg
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
msg: ReplayMsg,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
msg: ReplayMsg,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Process a single message.
§fn pre_start<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn pre_start<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called once before the first message.
§fn post_stop<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn post_stop<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called after the actor has been stopped.
§fn pre_restart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
_err: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn pre_restart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
_err: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Called when the actor is about to be restarted by the supervisor.
§fn post_restart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
_err: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn post_restart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
_err: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Called after a restart.
§fn on_terminated<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
_path: &'life2 ActorPath,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn on_terminated<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_ctx: &'life1 mut Context<Self>,
_path: &'life2 ActorPath,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Called when a watched actor terminates. The
path argument is
the path of the actor that just stopped. Default is a no-op.
Implementations may translate this into a user-visible message
(the Python binding does this for Terminated events).§fn supervisor_strategy(&self) -> SupervisorStrategy
fn supervisor_strategy(&self) -> SupervisorStrategy
The supervisor strategy this actor applies to its own children.
Auto Trait Implementations§
impl Freeze for ReplayHarness
impl !RefUnwindSafe for ReplayHarness
impl Send for ReplayHarness
impl Sync for ReplayHarness
impl Unpin for ReplayHarness
impl UnsafeUnpin for ReplayHarness
impl !UnwindSafe for ReplayHarness
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