#![cfg_attr(not(feature = "std"), no_std)]
#![deny(unused_must_use)]
#![forbid(unsafe_code)]
#[cfg(feature = "std")]
extern crate std;
#[cfg(all(feature = "alloc", not(feature = "heapless")))]
extern crate alloc;
#[cfg(feature = "attributes")]
mod attribute;
mod bit_timing;
mod byte_order;
mod compat;
mod dbc;
mod error;
mod extended_multiplexing;
mod message;
mod nodes;
mod parser;
mod receivers;
mod signal;
mod value_descriptions;
mod version;
mod macros;
#[cfg(feature = "std")]
mod fast_dbc;
#[cfg(feature = "attributes")]
pub use attribute::{
AttributeDefinition, AttributeObjectType, AttributeTarget, AttributeValue, AttributeValueType,
};
pub use bit_timing::BitTiming;
pub use byte_order::ByteOrder;
pub use dbc::{Dbc, DecodedSignal};
pub use error::{Error, Result};
pub use extended_multiplexing::ExtendedMultiplexing;
pub use message::{Message, Signals};
pub use nodes::{Node, Nodes};
pub use receivers::Receivers;
pub use signal::Signal;
pub use value_descriptions::ValueDescriptions;
pub use version::Version;
#[cfg(all(feature = "std", feature = "attributes"))]
pub use attribute::AttributeDefinitionBuilder;
#[cfg(feature = "std")]
pub use bit_timing::BitTimingBuilder;
#[cfg(feature = "std")]
pub use dbc::DbcBuilder;
#[cfg(feature = "std")]
pub use extended_multiplexing::ExtendedMultiplexingBuilder;
#[cfg(feature = "std")]
pub use message::MessageBuilder;
#[cfg(feature = "std")]
pub use nodes::NodesBuilder;
#[cfg(feature = "std")]
pub use receivers::ReceiversBuilder;
#[cfg(feature = "std")]
pub use signal::SignalBuilder;
#[cfg(feature = "std")]
pub use value_descriptions::ValueDescriptionsBuilder;
#[cfg(feature = "std")]
pub use version::VersionBuilder;
#[cfg(feature = "std")]
pub use fast_dbc::FastDbc;
pub(crate) use parser::Parser;
#[cfg(feature = "std")]
pub const PKG_VERSION: &str = env!("CARGO_PKG_VERSION");
#[cfg(feature = "std")]
pub const SPECIFICATION: &str = include_str!("../SPECIFICATIONS.md");
include!(concat!(env!("OUT_DIR"), "/limits.rs"));
pub(crate) const VERSION: &str = "VERSION";
pub(crate) const CM_: &str = "CM_";
pub(crate) const NS_: &str = "NS_";
pub(crate) const BS_: &str = "BS_";
pub(crate) const BU_: &str = "BU_";
pub(crate) const BO_: &str = "BO_";
pub(crate) const SG_: &str = "SG_";
pub(crate) const VAL_TABLE_: &str = "VAL_TABLE_";
pub(crate) const BA_DEF_: &str = "BA_DEF_";
pub(crate) const BA_DEF_DEF_: &str = "BA_DEF_DEF_";
pub(crate) const BA_: &str = "BA_";
pub(crate) const VAL_: &str = "VAL_";
pub(crate) const SIG_GROUP_: &str = "SIG_GROUP_";
pub(crate) const SIG_VALTYPE_: &str = "SIG_VALTYPE_";
pub(crate) const EV_: &str = "EV_";
pub(crate) const BO_TX_BU_: &str = "BO_TX_BU_";
pub(crate) const VECTOR_XXX: &str = "Vector__XXX";
pub(crate) const SG_MUL_VAL_: &str = "SG_MUL_VAL_";