passcod_networkmanager/devices/
bridge.rs

1use 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}