Skip to main content

Network

Struct Network 

Source
#[non_exhaustive]
pub struct Network {
Show 16 fields pub device: String, pub ssid: String, pub bssid: Option<String>, pub strength: Option<u8>, pub frequency: Option<u32>, pub secured: bool, pub is_psk: bool, pub is_eap: bool, pub is_hotspot: bool, pub ip4_address: Option<String>, pub ip6_address: Option<String>, pub best_bssid: String, pub bssids: Vec<String>, pub is_active: bool, pub known: bool, pub security_features: SecurityFeatures,
}
Expand description

Represents a Wi-Fi network discovered during a scan.

This struct contains information about a WiFi network that was discovered by NetworkManager during a scan operation.

§Examples

use nmrs::NetworkManager;

let nm = NetworkManager::new().await?;

// Scan for networks (None = all Wi-Fi devices)
nm.scan_networks(None).await?;
let networks = nm.list_networks(None).await?;

for net in networks {
    println!("SSID: {}", net.ssid);
    println!("  Signal: {}%", net.strength.unwrap_or(0));
    println!("  Secured: {}", net.secured);
     
    if let Some(freq) = net.frequency {
        let band = if freq > 5000 { "5GHz" } else { "2.4GHz" };
        println!("  Band: {}", band);
    }
}

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§device: String

Device interface name (e.g., “wlan0”)

§ssid: String

Network SSID (name)

§bssid: Option<String>

Access point MAC address (BSSID)

§strength: Option<u8>

Signal strength (0-100)

§frequency: Option<u32>

Frequency in MHz (e.g., 2437 for channel 6)

§secured: bool

Whether the network requires authentication

§is_psk: bool

Whether the network uses WPA-PSK authentication

§is_eap: bool

Whether the network uses WPA-EAP (Enterprise) authentication

§is_hotspot: bool

Whether the access point is operating in AP (hotspot) mode

§ip4_address: Option<String>

Assigned IPv4 address with CIDR notation (only present when connected)

§ip6_address: Option<String>

Assigned IPv6 address with CIDR notation (only present when connected)

§best_bssid: String

BSSID of the strongest AP for this SSID.

§bssids: Vec<String>

All known BSSIDs for this SSID, strongest first.

§is_active: bool

true if this network is currently active (connected).

§known: bool

true if a saved connection profile exists for this SSID.

§security_features: SecurityFeatures

Decoded security capabilities from NM flag triplet.

Implementations§

Source§

impl Network

Source

pub fn merge_ap(&mut self, other: &Network)

Merges another access point’s information into this network.

When multiple access points share the same SSID (e.g., mesh networks), this method keeps the strongest signal and combines security flags. Used internally during network scanning to deduplicate results.

Trait Implementations§

Source§

impl Clone for Network

Source§

fn clone(&self) -> Network

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 Network

Source§

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

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

impl<'de> Deserialize<'de> for Network

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Network

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,