use dbus as dbus;
#[allow(unused_imports)]
use dbus::arg;
use dbus::blocking;
pub trait VPNConnection {
fn vpn_state(&self) -> Result<u32, dbus::Error>;
fn banner(&self) -> Result<String, dbus::Error>;
}
#[derive(Debug)]
pub struct VPNConnectionVpnStateChanged {
pub state: u32,
pub reason: u32,
}
impl arg::AppendAll for VPNConnectionVpnStateChanged {
fn append(&self, i: &mut arg::IterAppend) {
arg::RefArg::append(&self.state, i);
arg::RefArg::append(&self.reason, i);
}
}
impl arg::ReadAll for VPNConnectionVpnStateChanged {
fn read(i: &mut arg::Iter) -> Result<Self, arg::TypeMismatchError> {
Ok(VPNConnectionVpnStateChanged {
state: i.read()?,
reason: i.read()?,
})
}
}
impl dbus::message::SignalArgs for VPNConnectionVpnStateChanged {
const NAME: &'static str = "VpnStateChanged";
const INTERFACE: &'static str = "org.freedesktop.NetworkManager.VPN.Connection";
}
impl<'a, T: blocking::BlockingSender, C: ::std::ops::Deref<Target=T>> VPNConnection for blocking::Proxy<'a, C> {
fn vpn_state(&self) -> Result<u32, dbus::Error> {
<Self as blocking::stdintf::org_freedesktop_dbus::Properties>::get(&self, "org.freedesktop.NetworkManager.VPN.Connection", "VpnState")
}
fn banner(&self) -> Result<String, dbus::Error> {
<Self as blocking::stdintf::org_freedesktop_dbus::Properties>::get(&self, "org.freedesktop.NetworkManager.VPN.Connection", "Banner")
}
}