Struct CanFrame

Source
#[repr(C)]
pub struct CanFrame { /* private fields */ }
Expand description

CanFrame

Uses the same memory layout as the underlying kernel struct for performance reasons.

Implementations§

Source§

impl CanFrame

Source

pub fn new( id: u32, data: &[u8], rtr: bool, err: bool, ) -> Result<CanFrame, ConstructionError>

Source

pub fn id(&self) -> u32

Return the actual CAN ID (without EFF/RTR/ERR flags)

Source

pub fn err(&self) -> u32

Return the error message

Source

pub fn is_extended(&self) -> bool

Check if frame uses 29 bit extended frame format

Source

pub fn is_error(&self) -> bool

Check if frame is an error message

Source

pub fn is_rtr(&self) -> bool

Check if frame is a remote transmission request

Source

pub fn data(&self) -> &[u8]

A slice into the actual data. Slice will always be <= 8 bytes in length

Source

pub fn error(&self) -> Result<CanError, CanErrorDecodingFailure>

Read error from message and transform it into a CanError.

SocketCAN errors are indicated using the error bit and coded inside id and data payload. Call error() converts these into usable CanError instances.

If the frame is malformed, this may fail with a CanErrorDecodingFailure.

Trait Implementations§

Source§

impl Clone for CanFrame

Source§

fn clone(&self) -> CanFrame

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CanFrame

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl UpperHex for CanFrame

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Copy for CanFrame

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.