Skip to main content

dlep_core/
message.rs

1use crate::data_item::DataItem;
2use crate::ids::MessageType;
3
4/// A DLEP TCP session message.
5///
6/// Wire format (RFC 8175 ยง11.2):
7/// `message_type: u16 || length: u16 || <data items>`
8///
9/// Unlike signals, messages do NOT carry the ASCII `"DLEP"` prefix.
10#[derive(Clone, Debug)]
11pub struct Message {
12    pub message_type: MessageType,
13    pub data_items: Vec<DataItem>,
14}
15
16impl Message {
17    pub fn new(message_type: MessageType) -> Self {
18        Self {
19            message_type,
20            data_items: Vec::new(),
21        }
22    }
23
24    pub fn with_item(mut self, item: DataItem) -> Self {
25        self.data_items.push(item);
26        self
27    }
28}