use passcod_networkmanager::devices::{Any, Device, Wired, Wireless};
use passcod_networkmanager::{Error, NetworkManager};
fn main() -> Result<(), Error> {
let nm = NetworkManager::new()?;
for dev in nm.get_devices()? {
match dev {
Device::Ethernet(x) => {
println!("Is autoconnected: {:?}", x.autoconnect()?);
println!("Speed: {:?}", x.speed()?);
println!("S390 Subchannels: {:?}", x.s390_subchannels()?);
println!("Carrier: {:?}", x.carrier()?);
let conf = x.ip4_config()?;
println!("Gateway: {:?}", conf.gateway()?);
let con = x.active_connection()?;
println!("Connection id: {}", con.id()?);
}
Device::WiFi(x) => {
println!("Bitrate: {:?}", x.bitrate()?);
x.request_scan(std::collections::HashMap::new())?;
for ap in x.get_all_access_points()? {
println!("SSID: {:?}", ap.ssid()?);
}
}
_ => {}
}
}
let eth0 = nm.get_device_by_ip_iface("eth0")?;
match eth0 {
Device::Ethernet(x) => {
println!("Speed: {:?}", x.speed()?);
}
_ => {}
}
Ok(())
}