passcod_networkmanager/devices/
wireless.rs

1use super::WiFiDevice;
2use crate::accesspoint::AccessPoint;
3use crate::errors::Error;
4use crate::gen::OrgFreedesktopNetworkManagerDeviceWireless;
5
6pub trait Wireless {
7    fn get_access_points(&self) -> Result<Vec<AccessPoint>, Error>;
8    fn get_all_access_points(&self) -> Result<Vec<AccessPoint>, Error>;
9    fn request_scan(
10        &self,
11        options: ::std::collections::HashMap<String, dbus::arg::Variant<Box<dyn dbus::arg::RefArg>>>,
12    ) -> Result<(), Error>;
13    fn hw_address(&self) -> Result<String, Error>;
14    fn perm_hw_address(&self) -> Result<String, Error>;
15    fn mode(&self) -> Result<u32, Error>;
16    fn bitrate(&self) -> Result<u32, Error>;
17    fn access_points(&self) -> Result<Vec<AccessPoint>, Error>;
18    fn active_access_point(&self) -> Result<AccessPoint, Error>;
19    fn wireless_capabilities(&self) -> Result<u32, Error>;
20    fn last_scan(&self) -> Result<i64, Error>;
21}
22
23impl Wireless for WiFiDevice {
24    fn request_scan(
25        &self,
26        options: std::collections::HashMap<String, dbus::arg::Variant<Box<dyn dbus::arg::RefArg>>>,
27    ) -> Result<(), Error> {
28        Ok(proxy!(self).request_scan(options)?)
29    }
30    fn get_access_points(&self) -> Result<Vec<AccessPoint>, Error> {
31        Ok(proxy!(self)
32            .get_access_points()?
33            .iter()
34            .map(|x| AccessPoint::new(self.dbus_accessor.with_path(x.clone())))
35            .collect())
36    }
37    fn get_all_access_points(&self) -> Result<Vec<AccessPoint>, Error> {
38        Ok(proxy!(self)
39            .get_all_access_points()?
40            .iter()
41            .map(|x| AccessPoint::new(self.dbus_accessor.with_path(x.clone())))
42            .collect())
43    }
44    fn hw_address(&self) -> Result<String, Error> {
45        Ok(proxy!(self).hw_address()?)
46    }
47    fn perm_hw_address(&self) -> Result<String, Error> {
48        Ok(proxy!(self).perm_hw_address()?)
49    }
50    fn mode(&self) -> Result<u32, Error> {
51        Ok(proxy!(self).mode()?)
52    }
53    fn bitrate(&self) -> Result<u32, Error> {
54        Ok(proxy!(self).bitrate()?)
55    }
56    fn access_points(&self) -> Result<Vec<AccessPoint>, Error> {
57        Ok(proxy!(self)
58            .access_points()?
59            .iter()
60            .map(|x| AccessPoint::new(self.dbus_accessor.with_path(x.clone())))
61            .collect())
62    }
63    fn active_access_point(&self) -> Result<AccessPoint, Error> {
64        let path = proxy!(self).active_access_point()?;
65        Ok(AccessPoint::new(self.dbus_accessor.with_path(path)))
66    }
67    fn wireless_capabilities(&self) -> Result<u32, Error> {
68        Ok(proxy!(self).wireless_capabilities()?)
69    }
70    fn last_scan(&self) -> Result<i64, Error> {
71        Ok(proxy!(self).last_scan()?)
72    }
73}