use crate::{
BitTiming, ExtendedMultiplexing, MAX_EXTENDED_MULTIPLEXING, Nodes, Version,
compat::{Comment, Vec},
};
type ExtendedMultiplexings = Vec<ExtendedMultiplexing, { MAX_EXTENDED_MULTIPLEXING }>;
mod ext_mux_index;
use ext_mux_index::ExtMuxIndex;
#[cfg(feature = "attributes")]
mod attributes_map;
mod messages;
mod value_descriptions_map;
#[cfg(feature = "std")]
mod builder;
mod decode;
mod encode;
mod impls;
mod parse;
#[cfg(feature = "std")]
mod std;
mod validate;
#[cfg(feature = "attributes")]
pub use attributes_map::{AttributeDefaultsMap, AttributeDefinitionsMap, AttributeValuesMap};
#[cfg(feature = "std")]
pub use builder::DbcBuilder;
pub use decode::DecodedSignal;
use messages::Messages;
use validate::Validate;
use value_descriptions_map::ValueDescriptionsMap;
#[derive(Debug, Clone)]
pub struct Dbc {
version: Option<Version>,
bit_timing: Option<BitTiming>,
nodes: Nodes,
messages: Messages,
value_descriptions: ValueDescriptionsMap,
extended_multiplexing: ExtendedMultiplexings,
ext_mux_index: ExtMuxIndex,
comment: Option<Comment>,
#[cfg(feature = "attributes")]
attribute_definitions: AttributeDefinitionsMap,
#[cfg(feature = "attributes")]
attribute_defaults: AttributeDefaultsMap,
#[cfg(feature = "attributes")]
attribute_values: AttributeValuesMap,
}