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;