Thanks to visit codestin.com
Credit goes to docs.rs

CanAddr

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 address 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 new_j1939(ifindex: u32, name: u64, pgn: u32, jaddr: u8) -> Self

Creates a new CAN J1939 socket address for the specified interface by index.

Source

pub fn new_isotp<R, T>(ifindex: u32, rx_id: R, tx_id: T) -> Self
where R: Into<Id>, T: Into<Id>,

Creates a new CAN ISO-TP socket address for the specified interface by index.

Source

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

Try to create an address from an interface name.

Source

pub fn from_iface_j1939( ifname: &str, name: u64, pgn: u32, jaddr: u8, ) -> Result<Self>

Try to create a J1939 address from an interface name.

Source

pub fn from_iface_isotp<R, T>(ifname: &str, rx_id: R, tx_id: T) -> Result<Self>
where R: Into<Id>, T: Into<Id>,

Try to create a ISO-TP 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 as_bytes(&self) -> &[u8]

Gets the underlying address as a byte slice

Source

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

Converts the address into a sockaddr_storage type. The storage type is a generic socket address container with enough space to hold any address in the system (not just CAN addresses).

Source

pub fn into_sock_addr(self) -> SockAddr

Converts the address into a socket2::SockAddr

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<CanAddr> for SockAddr

Source§

fn from(addr: CanAddr) -> Self

Converts to this type from the input type.
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> 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.