1use crate::{
2 BitTiming, ExtendedMultiplexing, MAX_EXTENDED_MULTIPLEXING, Nodes, Version,
3 compat::{Comment, Vec},
4};
5
6type ExtendedMultiplexings = Vec<ExtendedMultiplexing, { MAX_EXTENDED_MULTIPLEXING }>;
7
8mod ext_mux_index;
11use ext_mux_index::ExtMuxIndex;
12
13#[cfg(feature = "attributes")]
15mod attributes_map;
16mod messages;
17mod value_descriptions_map;
18
19#[cfg(feature = "std")]
21mod builder;
22mod decode;
23mod encode;
24mod impls;
25mod parse;
26#[cfg(feature = "std")]
27mod std;
28mod validate;
29
30#[cfg(feature = "attributes")]
32pub use attributes_map::{AttributeDefaultsMap, AttributeDefinitionsMap, AttributeValuesMap};
33#[cfg(feature = "std")]
34pub use builder::DbcBuilder;
35pub use decode::DecodedSignal;
36use messages::Messages;
37use validate::Validate;
38use value_descriptions_map::ValueDescriptionsMap;
39
40#[derive(Debug, Clone)]
65pub struct Dbc {
66 version: Option<Version>,
67 bit_timing: Option<BitTiming>,
68 nodes: Nodes,
69 messages: Messages,
70 value_descriptions: ValueDescriptionsMap,
71 extended_multiplexing: ExtendedMultiplexings,
72 ext_mux_index: ExtMuxIndex,
74 comment: Option<Comment>,
76 #[cfg(feature = "attributes")]
78 attribute_definitions: AttributeDefinitionsMap,
79 #[cfg(feature = "attributes")]
81 attribute_defaults: AttributeDefaultsMap,
82 #[cfg(feature = "attributes")]
84 attribute_values: AttributeValuesMap,
85}