pub struct ValueDescriptionsList<'a> { /* private fields */ }Expand description
Encapsulates the value descriptions map for a DBC
Value descriptions map signal values to human-readable text descriptions. They can be message-specific (keyed by message_id and signal_name) or global (keyed by None and signal_name, applying to all signals with that name).
Implementations§
Source§impl<'a> ValueDescriptionsList<'a>
impl<'a> ValueDescriptionsList<'a>
Sourcepub fn iter(
&self,
) -> impl Iterator<Item = ((Option<u32>, &'a str), &ValueDescriptions<'a>)> + '_
pub fn iter( &self, ) -> impl Iterator<Item = ((Option<u32>, &'a str), &ValueDescriptions<'a>)> + '_
Get an iterator over all value descriptions
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse(r#"VERSION "1.0"
BU_: ECM
BO_ 100 Engine : 8 ECM
SG_ Gear : 0|8@1+ (1,0) [0|5] "" *
VAL_ 100 Gear 0 "Park" 1 "Drive" ;"#)?;
for ((message_id, signal_name), value_descriptions) in dbc.value_descriptions().iter() {
println!("Message {:?}, Signal {}: {} entries", message_id, signal_name, value_descriptions.len());
}Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Get the number of value description entries
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse(r#"VERSION "1.0"
BU_: ECM
BO_ 100 Engine : 8 ECM
SG_ Gear : 0|8@1+ (1,0) [0|5] "" *
VAL_ 100 Gear 0 "Park" 1 "Drive" ;"#)?;
assert_eq!(dbc.value_descriptions().len(), 1);Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if there are no value descriptions
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM")?;
assert!(dbc.value_descriptions().is_empty());Sourcepub fn for_signal(
&self,
message_id: u32,
signal_name: &str,
) -> Option<&ValueDescriptions<'a>>
pub fn for_signal( &self, message_id: u32, signal_name: &str, ) -> Option<&ValueDescriptions<'a>>
Get value descriptions for a specific signal
This method first tries to find a message-specific value description, then falls back to a global value description (if message_id is None in the map).
§Arguments
message_id- The message IDsignal_name- The signal name
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse(r#"VERSION "1.0"
BU_: ECM
BO_ 100 Engine : 8 ECM
SG_ Gear : 0|8@1+ (1,0) [0|5] "" *
VAL_ 100 Gear 0 "Park" 1 "Drive" ;"#)?;
if let Some(value_descriptions) = dbc.value_descriptions().for_signal(100, "Gear") {
assert_eq!(value_descriptions.get(0), Some("Park"));
}Trait Implementations§
Source§impl<'a> Clone for ValueDescriptionsList<'a>
impl<'a> Clone for ValueDescriptionsList<'a>
Source§fn clone(&self) -> ValueDescriptionsList<'a>
fn clone(&self) -> ValueDescriptionsList<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'a> Debug for ValueDescriptionsList<'a>
impl<'a> Debug for ValueDescriptionsList<'a>
Source§impl<'a> Default for ValueDescriptionsList<'a>
impl<'a> Default for ValueDescriptionsList<'a>
Source§fn default() -> ValueDescriptionsList<'a>
fn default() -> ValueDescriptionsList<'a>
Returns the “default value” for a type. Read more
Source§impl<'a> Hash for ValueDescriptionsList<'a>
impl<'a> Hash for ValueDescriptionsList<'a>
Source§impl<'a> PartialEq for ValueDescriptionsList<'a>
impl<'a> PartialEq for ValueDescriptionsList<'a>
impl<'a> Eq for ValueDescriptionsList<'a>
impl<'a> StructuralPartialEq for ValueDescriptionsList<'a>
Auto Trait Implementations§
impl<'a> Freeze for ValueDescriptionsList<'a>
impl<'a> RefUnwindSafe for ValueDescriptionsList<'a>
impl<'a> Send for ValueDescriptionsList<'a>
impl<'a> Sync for ValueDescriptionsList<'a>
impl<'a> Unpin for ValueDescriptionsList<'a>
impl<'a> UnwindSafe for ValueDescriptionsList<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more