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}