dbc_rs/message/builder/mod.rs
1use crate::SignalBuilder;
2
3/// Builder for creating CAN messages programmatically.
4///
5/// Use this builder to construct [`Message`](crate::Message) instances with validated
6/// properties. All required fields must be set before calling [`build()`](Self::build).
7///
8/// # Examples
9///
10/// ```rust,no_run
11/// use dbc_rs::MessageBuilder;
12///
13/// let message = MessageBuilder::new()
14/// .id(0x100)
15/// .name("EngineData")
16/// .dlc(8)
17/// .sender("ECM")
18/// .build()?;
19/// # Ok::<(), dbc_rs::Error>(())
20/// ```
21#[derive(Debug)]
22pub struct MessageBuilder {
23 pub(crate) id: Option<u32>,
24 pub(crate) name: Option<String>,
25 pub(crate) dlc: Option<u8>,
26 pub(crate) sender: Option<String>,
27 pub(crate) signals: Vec<SignalBuilder>,
28 pub(crate) comment: Option<String>,
29}
30
31mod build;
32mod impls;