Struct CanFilter

Source
pub struct CanFilter { /* private fields */ }
Expand description

A CAN filter.

Can be used to have the kernel filter incoming frames before they are delivered to userspace, to avoid unnecessarily waking up just to ignore a frame.

Implementations§

Source§

impl CanFilter

Source

pub const fn new(id: CanId) -> Self

Create a new pass-all CAN filter with a standard or extended ID.

The mask is still set to zero when the filter is created. You have to call additional methods to restrict what frames match filter.

Source

pub const fn new_standard(id: StandardId) -> Self

Create a new pass-all CAN filter with a standard ID.

The mask is still set to zero when the filter is created. You have to call additional methods to restrict what frames match filter.

Source

pub const fn new_extended(id: ExtendedId) -> Self

Create a new pass-all CAN filter with an extended ID.

The mask is still set to zero when the filter is created. You have to call additional methods to restrict what frames match filter.

Source

pub const fn match_id_value(self) -> Self

Restrict the filter to match only frames with the same numerical ID.

The filter will still accept extended and standard frames (if the numerical value is possible for standard frames).

Adds to any restrictions already applied to the filter.

Source

pub const fn match_id_mask(self, mask: u32) -> Self

Restrict the filter to match only frames where frame.id & mask == filter.id & mask.

Only the lower 29 bits of the mask are used.

Source

pub const fn match_frame_format(self) -> Self

Restrict the filter to match only extended IDs or standard IDs (depending on the ID the filter was constructed with).

Adds to any restrictions already applied to the filter.

Source

pub const fn match_exact_id(self) -> Self

Restrict the filter to match only on exact ID matches.

This means the ID must match exactly, including the fact if it was an extended or standard ID.

This is equivalent to:

filter.match_id_value().match_frame_format()

Adds to any restrictions already applied to the filter.

Source

pub const fn match_rtr_only(self) -> Self

Restrict the filter to match only RTR frames.

Source

pub const fn match_data_only(self) -> Self

Restrict the filter to match only data frames.

Overrides any previous calls to Self::match_rtr_only().

Source

pub const fn inverted(self, inverted: bool) -> Self

Make the filter inverted or non-inverted.

When inverted, only frame that normally would not match the filter will match the filter.

Source

pub const fn is_inverted(self) -> bool

Check if the filter is inverted.

When inverted, only frame that normally would not match the filter will match the filter.

Source

pub const fn test(&self, frame: &CanFrame) -> bool

Test if a frame matches the filter.

Trait Implementations§

Source§

impl Clone for CanFilter

Source§

fn clone(&self) -> CanFilter

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 CanFilter

Source§

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

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

impl Copy for CanFilter

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> 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.