pub struct SignalList { /* private fields */ }Expand description
Encapsulates the signals array for a message
Uses Vec<Signal> for dynamic sizing.
Implementations§
Source§impl SignalList
impl SignalList
Sourcepub fn iter(&self) -> impl Iterator<Item = &Signal> + '_
pub fn iter(&self) -> impl Iterator<Item = &Signal> + '_
Get an iterator over the signals
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM\n\nBO_ 256 Engine : 8 ECM\n SG_ RPM : 0|16@1+ (0.25,0) [0|8000] \"rpm\"")?;
let message = dbc.messages().at(0).unwrap();
for signal in message.signals().iter() {
println!("Signal: {} (start: {}, length: {})", signal.name(), signal.start_bit(), signal.length());
}Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Get the number of signals
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM\n\nBO_ 256 Engine : 8 ECM\n SG_ RPM : 0|16@1+ (0.25,0) [0|8000] \"rpm\"")?;
let message = dbc.messages().at(0).unwrap();
assert_eq!(message.signals().len(), 1);Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if there are no signals
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM\n\nBO_ 256 Engine : 8 ECM")?;
let message = dbc.messages().at(0).unwrap();
assert!(message.signals().is_empty());Sourcepub fn at(&self, index: usize) -> Option<&Signal>
pub fn at(&self, index: usize) -> Option<&Signal>
Get a signal by index, or None if index is out of bounds
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM\n\nBO_ 256 Engine : 8 ECM\n SG_ RPM : 0|16@1+ (0.25,0) [0|8000] \"rpm\"")?;
let message = dbc.messages().at(0).unwrap();
if let Some(signal) = message.signals().at(0) {
assert_eq!(signal.name(), "RPM");
}Sourcepub fn find(&self, name: &str) -> Option<&Signal>
pub fn find(&self, name: &str) -> Option<&Signal>
Find a signal by name, or None if not found
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM\n\nBO_ 256 Engine : 8 ECM\n SG_ RPM : 0|16@1+ (0.25,0) [0|8000] \"rpm\"")?;
let message = dbc.messages().at(0).unwrap();
if let Some(signal) = message.signals().find("RPM") {
assert_eq!(signal.name(), "RPM");
assert_eq!(signal.factor(), 0.25);
}Trait Implementations§
Source§impl Clone for SignalList
impl Clone for SignalList
Source§fn clone(&self) -> SignalList
fn clone(&self) -> SignalList
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 Debug for SignalList
impl Debug for SignalList
Source§impl From<&[Signal]> for SignalList
impl From<&[Signal]> for SignalList
Source§impl Hash for SignalList
impl Hash for SignalList
Source§impl PartialEq for SignalList
impl PartialEq for SignalList
impl Eq for SignalList
impl StructuralPartialEq for SignalList
Auto Trait Implementations§
impl Freeze for SignalList
impl RefUnwindSafe for SignalList
impl Send for SignalList
impl Sync for SignalList
impl Unpin for SignalList
impl UnwindSafe for SignalList
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