Skip to main content

Interface

Struct Interface 

Source
pub struct Interface {
Show 18 fields pub index: u32, pub name: String, pub friendly_name: Option<String>, pub description: Option<String>, pub if_type: InterfaceType, pub mac_addr: Option<MacAddr>, pub ipv4: Vec<Ipv4Net>, pub ipv6: Vec<Ipv6Net>, pub ipv6_scope_ids: Vec<u32>, pub flags: u32, pub oper_state: OperState, pub transmit_speed: Option<u64>, pub receive_speed: Option<u64>, pub stats: Option<InterfaceStats>, pub gateway: Option<NetworkDevice>, pub dns_servers: Vec<IpAddr>, pub mtu: Option<u32>, pub default: bool,
}
Expand description

A network interface.

Fields§

§index: u32§name: String§friendly_name: Option<String>§description: Option<String>§if_type: InterfaceType§mac_addr: Option<MacAddr>§ipv4: Vec<Ipv4Net>§ipv6: Vec<Ipv6Net>§ipv6_scope_ids: Vec<u32>§flags: u32§oper_state: OperState§transmit_speed: Option<u64>§receive_speed: Option<u64>§stats: Option<InterfaceStats>§gateway: Option<NetworkDevice>§dns_servers: Vec<IpAddr>§mtu: Option<u32>§default: bool

Implementations§

Source§

impl Interface

Source

pub fn default() -> Result<Interface, String>

Source

pub fn dummy() -> Interface

Source

pub fn refresh(&mut self) -> Result<()>

Refresh all interface fields from the operating system.

This performs a fresh system lookup and may be more expensive than the accessor methods on Interface.

Source

pub fn is_up(&self) -> bool

Source

pub fn is_loopback(&self) -> bool

Source

pub fn is_point_to_point(&self) -> bool

Source

pub fn is_multicast(&self) -> bool

Source

pub fn is_broadcast(&self) -> bool

Source

pub fn is_tun(&self) -> bool

Source

pub fn is_running(&self) -> bool

Source

pub fn is_physical(&self) -> bool

Source

pub fn oper_state(&self) -> OperState

Source

pub fn is_oper_up(&self) -> bool

Source

pub fn refresh_oper_state(&mut self) -> Result<()>

Refresh the operational state from the operating system.

This may perform a fresh interface lookup.

Source

pub fn update_oper_state(&mut self)

Refresh the operational state from the operating system.

This may perform a fresh interface lookup.

Source

pub fn ipv4_addr_iter(&self) -> impl Iterator<Item = Ipv4Addr> + '_

Iterate IPv4 addresses without allocating a new vector.

Source

pub fn ipv4_addrs(&self) -> Vec<Ipv4Addr>

Source

pub fn ipv6_addr_iter(&self) -> impl Iterator<Item = Ipv6Addr> + '_

Iterate IPv6 addresses without allocating a new vector.

Source

pub fn ipv6_addrs(&self) -> Vec<Ipv6Addr>

Source

pub fn ip_addr_iter(&self) -> impl Iterator<Item = IpAddr> + '_

Iterate IP addresses without allocating a new vector.

Source

pub fn ip_addrs(&self) -> Vec<IpAddr>

Source

pub fn has_ipv4(&self) -> bool

Source

pub fn has_ipv6(&self) -> bool

Source

pub fn has_global_ipv4(&self) -> bool

Source

pub fn has_global_ipv6(&self) -> bool

Source

pub fn has_global_ip(&self) -> bool

Source

pub fn global_ipv4_addrs(&self) -> Vec<Ipv4Addr>

Source

pub fn global_ipv6_addrs(&self) -> Vec<Ipv6Addr>

Source

pub fn global_ip_addrs(&self) -> Vec<IpAddr>

Source

pub fn refresh_stats(&mut self) -> Result<()>

Refresh interface statistics from the operating system.

This may perform a fresh interface lookup.

Source

pub fn update_stats(&mut self) -> Result<()>

Refresh interface statistics from the operating system.

This may perform a fresh interface lookup.

Trait Implementations§

Source§

impl Clone for Interface

Source§

fn clone(&self) -> Interface

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 Interface

Source§

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

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

impl From<Interface> for Interface

Source§

fn from(value: Interface) -> Self

Converts to this type from the input type.
Source§

impl Hash for Interface

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Interface

Source§

fn eq(&self, other: &Interface) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Interface

Source§

impl StructuralPartialEq for Interface

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.