mm1_proto_system/
spawn.rs1use mm1_address::address::Address;
2use mm1_common::errors::error_of::ErrorOf;
3use mm1_common::impl_error_kind;
4use mm1_proto::message;
5
6use crate::System;
7
8#[derive(Debug)]
9#[message]
10pub struct SpawnRequest<S: System> {
11 pub runnable: S::Runnable,
12 pub ack_to: Option<Address>,
13 pub link_to: Vec<Address>,
14}
15
16pub type SpawnResponse = Result<Address, ErrorOf<SpawnErrorKind>>;
17
18#[derive(Debug, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
19#[message]
20pub enum SpawnErrorKind {
21 InternalError,
22 ResourceConstraint,
23}
24
25impl_error_kind!(SpawnErrorKind);