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}