pub struct ChildSpec<R: Reactor> {
pub name: String,
pub restart: RestartPolicy,
pub shutdown: ShutdownPolicy,
pub namespace: NamespacePolicy,
pub mailbox_capacity: usize,
pub factory: Arc<dyn Fn() -> Box<dyn Actor<R>> + Send + Sync>,
pub stable_addr_refresher: Option<Arc<dyn AddrRefresher>>,
}Expand description
Specification provided at spawn time that governs a child actor’s lifecycle.
factory is called by the supervisor whenever it needs to (re)create the
child actor — at initial spawn and after each restart. It must be
Send + Sync so the supervisor task can share the spec across threads.
Fields§
§name: String§restart: RestartPolicy§shutdown: ShutdownPolicy§namespace: NamespacePolicy§mailbox_capacity: usize§factory: Arc<dyn Fn() -> Box<dyn Actor<R>> + Send + Sync>Factory function that produces a fresh Box<dyn Actor<R>> on each
(re)spawn. The closure must be cheap to call repeatedly.
stable_addr_refresher: Option<Arc<dyn AddrRefresher>>Optional refresher notified by the supervisor after each (re)spawn.
Set via ChildSpec::with_stable_addr.
Implementations§
Source§impl<R: Reactor> ChildSpec<R>
impl<R: Reactor> ChildSpec<R>
pub fn new( name: impl Into<String>, restart: RestartPolicy, shutdown: ShutdownPolicy, namespace: NamespacePolicy, factory: impl Fn() -> Box<dyn Actor<R>> + Send + Sync + 'static, ) -> Self
Sourcepub fn with_mailbox_capacity(self, capacity: usize) -> Self
pub fn with_mailbox_capacity(self, capacity: usize) -> Self
Builder-style method to override the default mailbox capacity.
Sourcepub fn with_stable_addr(self, refresher: Arc<dyn AddrRefresher>) -> Self
pub fn with_stable_addr(self, refresher: Arc<dyn AddrRefresher>) -> Self
Attach an AddrRefresher so the supervisor updates a [StableAddr]
after each spawn of this child.
Trait Implementations§
Auto Trait Implementations§
impl<R> Freeze for ChildSpec<R>
impl<R> !RefUnwindSafe for ChildSpec<R>
impl<R> Send for ChildSpec<R>
impl<R> Sync for ChildSpec<R>
impl<R> Unpin for ChildSpec<R>
impl<R> UnsafeUnpin for ChildSpec<R>
impl<R> !UnwindSafe for ChildSpec<R>
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