Struct CanAddr

Source
pub struct CanAddr(/* private fields */);
Expand description

CAN socket address.

This is the address for use with CAN sockets. It is simply an addres to the SocketCAN host interface. It can be created by looking up the name of the interface, like “can0”, “vcan0”, etc, or an interface index can be specified directly, if known. An index of zero can be used to read frames from all interfaces.

This is based on, and compatible with, the sockaddr_can struct from libc. ref

Implementations§

Source§

impl CanAddr

Source

pub fn new(ifindex: u32) -> Self

Creates a new CAN socket address for the specified interface by index. An index of zero can be used to read from all interfaces.

Source

pub fn from_iface(ifname: &str) -> Result<Self>

Try to create an address from an interface name.

Source

pub fn as_ptr(&self) -> *const sockaddr_can

Gets the address of the structure as a sockaddr_can pointer.

Source

pub fn as_sockaddr_ptr(&self) -> *const sockaddr

Gets the address of the structure as a sockaddr pointer.

Source

pub fn len() -> usize

Gets the size of the address structure.

Source

pub fn into_storage(self) -> (sockaddr_storage, socklen_t)

Converts the CAN address into a sockaddr_storage type. This is a generic socket address container with enough space to hold any address type in the system.

Trait Implementations§

Source§

impl AsRef<sockaddr_can> for CanAddr

Source§

fn as_ref(&self) -> &sockaddr_can

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for CanAddr

Source§

fn clone(&self) -> CanAddr

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 CanAddr

Source§

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

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

impl Default for CanAddr

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl From<sockaddr_can> for CanAddr

Source§

fn from(addr: sockaddr_can) -> Self

Converts to this type from the input type.
Source§

impl Copy for CanAddr

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.