pub struct MessageList<'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> MessageList<'a>
impl<'a> MessageList<'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§
Source§impl<'a> Clone for MessageList<'a>
impl<'a> Clone for MessageList<'a>
Source§fn clone(&self) -> MessageList<'a>
fn clone(&self) -> MessageList<'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 MessageList<'a>
impl<'a> Debug for MessageList<'a>
Source§impl<'a> Hash for MessageList<'a>
impl<'a> Hash for MessageList<'a>
Source§impl<'a> PartialEq for MessageList<'a>
impl<'a> PartialEq for MessageList<'a>
impl<'a> Eq for MessageList<'a>
impl<'a> StructuralPartialEq for MessageList<'a>
Auto Trait Implementations§
impl<'a> Freeze for MessageList<'a>
impl<'a> RefUnwindSafe for MessageList<'a>
impl<'a> Send for MessageList<'a>
impl<'a> Sync for MessageList<'a>
impl<'a> Unpin for MessageList<'a>
impl<'a> UnwindSafe for MessageList<'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