passcod_networkmanager/devices/
bridge.rs1use super::BridgeDevice;
2use super::Device;
3use crate::gen::OrgFreedesktopNetworkManagerDeviceBridge;
4use crate::Error;
5
6pub trait Bridge {
7 fn hw_address(&self) -> Result<String, Error>;
8 fn carrier(&self) -> Result<bool, Error>;
9 fn slaves(&self) -> Result<Vec<Device>, Error>;
10}
11
12impl Bridge for BridgeDevice {
13 fn hw_address(&self) -> Result<String, Error> {
14 Ok(proxy!(self).hw_address()?)
15 }
16
17 fn carrier(&self) -> Result<bool, Error> {
18 Ok(proxy!(self).carrier()?)
19 }
20
21 fn slaves(&self) -> Result<Vec<Device>, Error> {
22 let paths = proxy!(self).slaves()?;
23 let mut vec = Vec::new();
24 for slave_path in paths {
25 vec.push(Device::new(self.dbus_accessor.with_path(slave_path))?)
26 }
27 Ok(vec)
28 }
29}