pub struct Messages<'a> { /* private fields */ }Expand description
Encapsulates the messages array and count for a DBC
Storage strategy:
no_std: Uses fixed-size array[Option<Message>; MAX_MESSAGES]alloc: Uses heap-allocatedBox<[Option<Message>]>for dynamic sizing
Implementations§
Source§impl<'a> Messages<'a>
impl<'a> Messages<'a>
Sourcepub fn iter(&self) -> impl Iterator<Item = &Message<'a>> + '_
pub fn iter(&self) -> impl Iterator<Item = &Message<'a>> + '_
Get an iterator over the messages
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM\n\nBO_ 256 Engine : 8 ECM")?;
let mut iter = dbc.messages().iter();
let message = iter.next().unwrap();
assert_eq!(message.name(), "Engine");
assert_eq!(message.id(), 256);
assert!(iter.next().is_none());Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Get the number of messages
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM\n\nBO_ 256 Engine : 8 ECM")?;
assert_eq!(dbc.messages().len(), 1);Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if there are no messages
§Examples
use dbc_rs::Dbc;
let dbc = Dbc::parse("VERSION \"1.0\"\n\nBU_: ECM")?;
assert!(dbc.messages().is_empty());Sourcepub fn at(&self, index: usize) -> Option<&Message<'a>>
pub fn at(&self, index: usize) -> Option<&Message<'a>>
Get a message 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")?;
if let Some(message) = dbc.messages().at(0) {
assert_eq!(message.name(), "Engine");
}Sourcepub fn find(&self, name: &str) -> Option<&Message<'a>>
pub fn find(&self, name: &str) -> Option<&Message<'a>>
Find a message 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")?;
if let Some(message) = dbc.messages().find("Engine") {
assert_eq!(message.name(), "Engine");
assert_eq!(message.id(), 256);
}Trait Implementations§
impl<'a> Eq for Messages<'a>
impl<'a> StructuralPartialEq for Messages<'a>
Auto Trait Implementations§
impl<'a> Freeze for Messages<'a>
impl<'a> RefUnwindSafe for Messages<'a>
impl<'a> Send for Messages<'a>
impl<'a> Sync for Messages<'a>
impl<'a> Unpin for Messages<'a>
impl<'a> UnwindSafe for Messages<'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