pub trait SystemMessageHandler:
Actor
+ Send
+ Sync {
// Required methods
fn join<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
world_id: WorldId,
proc_id: ProcId,
proc_message_port: PortRef<ProcMessage>,
proc_addr: ChannelAddr,
labels: HashMap<String, String>,
lifecycle_mode: ProcLifecycleMode,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn upsert_world<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
world_id: WorldId,
shape: Shape,
num_procs_per_host: usize,
env: Environment,
labels: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn snapshot<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
filter: SystemSnapshotFilter,
) -> Pin<Box<dyn Future<Output = Result<SystemSnapshot, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn stop<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
worlds: Option<Vec<WorldId>>,
proc_timeout: Duration,
reply_port: OncePortRef<()>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided method
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
message: SystemMessage,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
}
Expand description
The custom handler trait for this message type.
Required Methods§
Sourcefn join<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
world_id: WorldId,
proc_id: ProcId,
proc_message_port: PortRef<ProcMessage>,
proc_addr: ChannelAddr,
labels: HashMap<String, String>,
lifecycle_mode: ProcLifecycleMode,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn join<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
world_id: WorldId,
proc_id: ProcId,
proc_message_port: PortRef<ProcMessage>,
proc_addr: ChannelAddr,
labels: HashMap<String, String>,
lifecycle_mode: ProcLifecycleMode,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Sourcefn upsert_world<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
world_id: WorldId,
shape: Shape,
num_procs_per_host: usize,
env: Environment,
labels: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn upsert_world<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
world_id: WorldId,
shape: Shape,
num_procs_per_host: usize,
env: Environment,
labels: HashMap<String, String>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Sourcefn snapshot<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
filter: SystemSnapshotFilter,
) -> Pin<Box<dyn Future<Output = Result<SystemSnapshot, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn snapshot<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
filter: SystemSnapshotFilter,
) -> Pin<Box<dyn Future<Output = Result<SystemSnapshot, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Sourcefn stop<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
worlds: Option<Vec<WorldId>>,
proc_timeout: Duration,
reply_port: OncePortRef<()>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn stop<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
worlds: Option<Vec<WorldId>>,
proc_timeout: Duration,
reply_port: OncePortRef<()>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
impl SystemMessageHandler for SystemActor
+——+ spawns +––+ joins +—–+ | Proc |<–––––|Host|———>|World| +——+ +––+ +—–+ | ^ | joins | +———————————–+ When bootstrapping the system,
- hosts will join the world,
- hosts will spawn (worker) procs,
- procs will join the world