surreal/message.rs
1//! Message types for inter-process communication.
2
3use crate::{Pid, Value};
4
5/// Messages sent between processes
6#[derive(Debug, Clone)]
7pub enum Message {
8 /// User-level message
9 User(String),
10 /// System message (e.g., crash notification from linked process)
11 System(SystemMsg),
12}
13
14/// System-level messages
15#[derive(Debug, Clone)]
16pub enum SystemMsg {
17 /// Exit signal from a linked process: {:EXIT, Pid, Reason}
18 /// When trap_exit is true, this becomes a message; otherwise it kills the process
19 Exit(Pid, Value),
20 /// A monitored process exited: {:DOWN, Ref, :process, Pid, Reason}
21 Down(u64, Pid, Value),
22}