pub struct FrameView<'a> { /* private fields */ }Expand description
A frame with an unknown PDU type.
let frame = FrameView::try_from_bytes(&hex!("01 06 00 04 00 02 49 CA")).unwrap();
assert_eq!(frame.unit_id(), 1);
assert!(frame.validate_crc().is_ok());Implementations§
Source§impl<'a> FrameView<'a>
impl<'a> FrameView<'a>
Sourcepub fn try_from_bytes(buf: &'a [u8]) -> Option<Self>
pub fn try_from_bytes(buf: &'a [u8]) -> Option<Self>
Parse a frame from a byte slice. This method does not validate the CRC or the PDU contents, only that the frame has a valid length.
Sourcepub const fn crc(&self) -> u16
pub const fn crc(&self) -> u16
The CRC sent with the frame. This struct does not guarantee that the
CRC is valid; be sure to check it with FrameView::validate_crc.
Sourcepub fn validate_crc(&self) -> Result<(), CrcError>
pub fn validate_crc(&self) -> Result<(), CrcError>
Validate the CRC of the frame.
Note that FrameView::pdu validates the CRC before returning
the PDU, rendering this method unnecessary to call directly in most
cases.
Auto Trait Implementations§
impl<'a> Freeze for FrameView<'a>
impl<'a> RefUnwindSafe for FrameView<'a>
impl<'a> Send for FrameView<'a>
impl<'a> Sync for FrameView<'a>
impl<'a> Unpin for FrameView<'a>
impl<'a> UnsafeUnpin for FrameView<'a>
impl<'a> UnwindSafe for FrameView<'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