Struct linux_info::network::network_manager::NetworkManager
source · pub struct NetworkManager { /* private fields */ }Implementations§
source§impl NetworkManager
impl NetworkManager
sourcepub fn connect() -> Result<Self, Error>
pub fn connect() -> Result<Self, Error>
Examples found in repository?
examples/network.rs (line 14)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
fn main() {
let dbus = NetworkManager::connect().unwrap();
for device in dbus.devices().unwrap() {
let state = device.state().unwrap();
let kind = device.kind().unwrap();
let interface = device.interface().unwrap();
println!("{:?} {:?} {:?}", interface, kind, state);
if let Ok(apn) = device.modem_apn() {
println!("- has apn {:?}", apn);
}
if matches!(state, DeviceState::Activated) {
let ipv4 = device.ipv4_config().unwrap()
.addresses().unwrap();
println!("- addresses {:?}", ipv4);
}
}
let dbus = ModemManager::connect().unwrap();
for modem in dbus.modems().unwrap() {
println!(
"modem {:?} {:?} {:?}",
modem.model().unwrap(),
modem.manufacturer().unwrap(),
modem.device().unwrap()
);
println!(
"- carrier configuration: {:?}",
modem.carrier_configuration().unwrap()
);
println!(
"- state: {:?}, signal: {:?}",
modem.state().unwrap(),
modem.signal_quality().unwrap()
);
let (allowed_modes, preffered_modes) = modem.current_modes().unwrap();
println!(
"- allowed modes: 2g: {} 3g: {} 4g: {} 5g: {}",
allowed_modes.has_2g(),
allowed_modes.has_3g(),
allowed_modes.has_4g(),
allowed_modes.has_5g()
);
println!(
"- prefered modes: 2g: {} 3g: {} 4g: {} 5g: {}",
preffered_modes.has_2g(),
preffered_modes.has_3g(),
preffered_modes.has_4g(),
preffered_modes.has_5g()
);
println!(
"- bands: {:?}",
modem.current_bands().unwrap()
);
modem.signal_setup(10).unwrap();
thread::sleep(Duration::from_secs(1));
if let Ok(cdma) = modem.signal_cdma() {
println!("- cdma: {:?}", cdma);
}
if let Ok(evdo) = modem.signal_evdo() {
println!("- evdo: {:?}", evdo);
}
if let Ok(gsm) = modem.signal_gsm() {
println!("- gsm: {:?}", gsm);
}
if let Ok(umts) = modem.signal_umts() {
println!("- umts: {:?}", umts);
}
if let Ok(lte) = modem.signal_lte() {
println!("- lte: {:?}", lte);
}
if let Ok(nr5g) = modem.signal_nr5g() {
println!("- nr5g: {:?}", nr5g);
}
}
}sourcepub fn devices(&self) -> Result<Vec<Device>, Error>
pub fn devices(&self) -> Result<Vec<Device>, Error>
Examples found in repository?
examples/network.rs (line 16)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
fn main() {
let dbus = NetworkManager::connect().unwrap();
for device in dbus.devices().unwrap() {
let state = device.state().unwrap();
let kind = device.kind().unwrap();
let interface = device.interface().unwrap();
println!("{:?} {:?} {:?}", interface, kind, state);
if let Ok(apn) = device.modem_apn() {
println!("- has apn {:?}", apn);
}
if matches!(state, DeviceState::Activated) {
let ipv4 = device.ipv4_config().unwrap()
.addresses().unwrap();
println!("- addresses {:?}", ipv4);
}
}
let dbus = ModemManager::connect().unwrap();
for modem in dbus.modems().unwrap() {
println!(
"modem {:?} {:?} {:?}",
modem.model().unwrap(),
modem.manufacturer().unwrap(),
modem.device().unwrap()
);
println!(
"- carrier configuration: {:?}",
modem.carrier_configuration().unwrap()
);
println!(
"- state: {:?}, signal: {:?}",
modem.state().unwrap(),
modem.signal_quality().unwrap()
);
let (allowed_modes, preffered_modes) = modem.current_modes().unwrap();
println!(
"- allowed modes: 2g: {} 3g: {} 4g: {} 5g: {}",
allowed_modes.has_2g(),
allowed_modes.has_3g(),
allowed_modes.has_4g(),
allowed_modes.has_5g()
);
println!(
"- prefered modes: 2g: {} 3g: {} 4g: {} 5g: {}",
preffered_modes.has_2g(),
preffered_modes.has_3g(),
preffered_modes.has_4g(),
preffered_modes.has_5g()
);
println!(
"- bands: {:?}",
modem.current_bands().unwrap()
);
modem.signal_setup(10).unwrap();
thread::sleep(Duration::from_secs(1));
if let Ok(cdma) = modem.signal_cdma() {
println!("- cdma: {:?}", cdma);
}
if let Ok(evdo) = modem.signal_evdo() {
println!("- evdo: {:?}", evdo);
}
if let Ok(gsm) = modem.signal_gsm() {
println!("- gsm: {:?}", gsm);
}
if let Ok(umts) = modem.signal_umts() {
println!("- umts: {:?}", umts);
}
if let Ok(lte) = modem.signal_lte() {
println!("- lte: {:?}", lte);
}
if let Ok(nr5g) = modem.signal_nr5g() {
println!("- nr5g: {:?}", nr5g);
}
}
}Trait Implementations§
source§impl Clone for NetworkManager
impl Clone for NetworkManager
source§fn clone(&self) -> NetworkManager
fn clone(&self) -> NetworkManager
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more