Skip to content

Instantly share code, notes, and snippets.

@SmallEndian
Created February 22, 2021 22:40
Show Gist options
  • Select an option

  • Save SmallEndian/2e605b5cdd24dea7abf25087fd28ce85 to your computer and use it in GitHub Desktop.

Select an option

Save SmallEndian/2e605b5cdd24dea7abf25087fd28ce85 to your computer and use it in GitHub Desktop.
Auto generated DBus rust
// This code was autogenerated with `dbus-codegen-rust -nd org.freedesktop.DBus`, see https://github.com/diwic/dbus-rs
use dbus as dbus;
#[allow(unused_imports)]
use dbus::arg;
use dbus_tree as tree;
pub trait OrgFreedesktopDBus {
fn hello(&self) -> Result<String, tree::MethodErr>;
fn request_name(&self, arg0: &str, arg1: u32) -> Result<u32, tree::MethodErr>;
fn release_name(&self, arg0: &str) -> Result<u32, tree::MethodErr>;
fn start_service_by_name(&self, arg0: &str, arg1: u32) -> Result<u32, tree::MethodErr>;
fn update_activation_environment(&self, arg0: ::std::collections::HashMap<&str, &str>) -> Result<(), tree::MethodErr>;
fn name_has_owner(&self, arg0: &str) -> Result<bool, tree::MethodErr>;
fn list_names(&self) -> Result<Vec<String>, tree::MethodErr>;
fn list_activatable_names(&self) -> Result<Vec<String>, tree::MethodErr>;
fn add_match(&self, arg0: &str) -> Result<(), tree::MethodErr>;
fn remove_match(&self, arg0: &str) -> Result<(), tree::MethodErr>;
fn get_name_owner(&self, arg0: &str) -> Result<String, tree::MethodErr>;
fn list_queued_owners(&self, arg0: &str) -> Result<Vec<String>, tree::MethodErr>;
fn get_connection_unix_user(&self, arg0: &str) -> Result<u32, tree::MethodErr>;
fn get_connection_unix_process_id(&self, arg0: &str) -> Result<u32, tree::MethodErr>;
fn get_adt_audit_session_data(&self, arg0: &str) -> Result<Vec<u8>, tree::MethodErr>;
fn get_connection_selinux_security_context(&self, arg0: &str) -> Result<Vec<u8>, tree::MethodErr>;
fn reload_config(&self) -> Result<(), tree::MethodErr>;
fn get_id(&self) -> Result<String, tree::MethodErr>;
fn get_connection_credentials(&self, arg0: &str) -> Result<arg::PropMap, tree::MethodErr>;
fn features(&self) -> Result<Vec<String>, tree::MethodErr>;
fn interfaces(&self) -> Result<Vec<String>, tree::MethodErr>;
}
pub fn org_freedesktop_dbus_server<F, T, D>(factory: &tree::Factory<tree::MTFn<D>, D>, data: D::Interface, f: F) -> tree::Interface<tree::MTFn<D>, D>
where
D: tree::DataType,
D::Method: Default,
D::Property: Default,
D::Signal: Default,
T: OrgFreedesktopDBus,
F: 'static + for <'z> Fn(& 'z tree::MethodInfo<tree::MTFn<D>, D>) -> & 'z T,
{
let i = factory.interface("org.freedesktop.DBus", data);
let f = ::std::sync::Arc::new(f);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
let arg0 = d.hello()?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("Hello", Default::default(), h);
let m = m.out_arg(("", "s"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let arg1: u32 = i.read()?;
let d = fclone(minfo);
let arg0 = d.request_name(arg0, arg1)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("RequestName", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.in_arg(("", "u"));
let m = m.out_arg(("", "u"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.release_name(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("ReleaseName", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "u"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let arg1: u32 = i.read()?;
let d = fclone(minfo);
let arg0 = d.start_service_by_name(arg0, arg1)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("StartServiceByName", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.in_arg(("", "u"));
let m = m.out_arg(("", "u"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: ::std::collections::HashMap<&str, &str> = i.read()?;
let d = fclone(minfo);
d.update_activation_environment(arg0)?;
let rm = minfo.msg.method_return();
Ok(vec!(rm))
};
let m = factory.method("UpdateActivationEnvironment", Default::default(), h);
let m = m.in_arg(("", "a{ss}"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.name_has_owner(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("NameHasOwner", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "b"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
let arg0 = d.list_names()?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("ListNames", Default::default(), h);
let m = m.out_arg(("", "as"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
let arg0 = d.list_activatable_names()?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("ListActivatableNames", Default::default(), h);
let m = m.out_arg(("", "as"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
d.add_match(arg0)?;
let rm = minfo.msg.method_return();
Ok(vec!(rm))
};
let m = factory.method("AddMatch", Default::default(), h);
let m = m.in_arg(("", "s"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
d.remove_match(arg0)?;
let rm = minfo.msg.method_return();
Ok(vec!(rm))
};
let m = factory.method("RemoveMatch", Default::default(), h);
let m = m.in_arg(("", "s"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.get_name_owner(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetNameOwner", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "s"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.list_queued_owners(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("ListQueuedOwners", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "as"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.get_connection_unix_user(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetConnectionUnixUser", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "u"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.get_connection_unix_process_id(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetConnectionUnixProcessID", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "u"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.get_adt_audit_session_data(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetAdtAuditSessionData", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "ay"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.get_connection_selinux_security_context(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetConnectionSELinuxSecurityContext", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "ay"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
d.reload_config()?;
let rm = minfo.msg.method_return();
Ok(vec!(rm))
};
let m = factory.method("ReloadConfig", Default::default(), h);
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
let arg0 = d.get_id()?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetId", Default::default(), h);
let m = m.out_arg(("", "s"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let mut i = minfo.msg.iter_init();
let arg0: &str = i.read()?;
let d = fclone(minfo);
let arg0 = d.get_connection_credentials(arg0)?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetConnectionCredentials", Default::default(), h);
let m = m.in_arg(("", "s"));
let m = m.out_arg(("", "a{sv}"));
let i = i.add_m(m);
let p = factory.property::<Vec<&str>, _>("Features", Default::default());
let p = p.access(tree::Access::Read);
let fclone = f.clone();
let p = p.on_get(move |a, pinfo| {
let minfo = pinfo.to_method_info();
let d = fclone(&minfo);
a.append(d.features()?);
Ok(())
});
let i = i.add_p(p);
let p = factory.property::<Vec<&str>, _>("Interfaces", Default::default());
let p = p.access(tree::Access::Read);
let fclone = f.clone();
let p = p.on_get(move |a, pinfo| {
let minfo = pinfo.to_method_info();
let d = fclone(&minfo);
a.append(d.interfaces()?);
Ok(())
});
let i = i.add_p(p);
let s = factory.signal("NameOwnerChanged", Default::default());
let s = s.arg(("", "s"));
let s = s.arg(("", "s"));
let s = s.arg(("", "s"));
let i = i.add_s(s);
let s = factory.signal("NameLost", Default::default());
let s = s.arg(("", "s"));
let i = i.add_s(s);
let s = factory.signal("NameAcquired", Default::default());
let s = s.arg(("", "s"));
let i = i.add_s(s);
i
}
#[derive(Debug)]
pub struct OrgFreedesktopDBusNameOwnerChanged {
pub arg0: String,
pub arg1: String,
pub arg2: String,
}
impl arg::AppendAll for OrgFreedesktopDBusNameOwnerChanged {
fn append(&self, i: &mut arg::IterAppend) {
arg::RefArg::append(&self.arg0, i);
arg::RefArg::append(&self.arg1, i);
arg::RefArg::append(&self.arg2, i);
}
}
impl arg::ReadAll for OrgFreedesktopDBusNameOwnerChanged {
fn read(i: &mut arg::Iter) -> Result<Self, arg::TypeMismatchError> {
Ok(OrgFreedesktopDBusNameOwnerChanged {
arg0: i.read()?,
arg1: i.read()?,
arg2: i.read()?,
})
}
}
impl dbus::message::SignalArgs for OrgFreedesktopDBusNameOwnerChanged {
const NAME: &'static str = "NameOwnerChanged";
const INTERFACE: &'static str = "org.freedesktop.DBus";
}
#[derive(Debug)]
pub struct OrgFreedesktopDBusNameLost {
pub arg0: String,
}
impl arg::AppendAll for OrgFreedesktopDBusNameLost {
fn append(&self, i: &mut arg::IterAppend) {
arg::RefArg::append(&self.arg0, i);
}
}
impl arg::ReadAll for OrgFreedesktopDBusNameLost {
fn read(i: &mut arg::Iter) -> Result<Self, arg::TypeMismatchError> {
Ok(OrgFreedesktopDBusNameLost {
arg0: i.read()?,
})
}
}
impl dbus::message::SignalArgs for OrgFreedesktopDBusNameLost {
const NAME: &'static str = "NameLost";
const INTERFACE: &'static str = "org.freedesktop.DBus";
}
#[derive(Debug)]
pub struct OrgFreedesktopDBusNameAcquired {
pub arg0: String,
}
impl arg::AppendAll for OrgFreedesktopDBusNameAcquired {
fn append(&self, i: &mut arg::IterAppend) {
arg::RefArg::append(&self.arg0, i);
}
}
impl arg::ReadAll for OrgFreedesktopDBusNameAcquired {
fn read(i: &mut arg::Iter) -> Result<Self, arg::TypeMismatchError> {
Ok(OrgFreedesktopDBusNameAcquired {
arg0: i.read()?,
})
}
}
impl dbus::message::SignalArgs for OrgFreedesktopDBusNameAcquired {
const NAME: &'static str = "NameAcquired";
const INTERFACE: &'static str = "org.freedesktop.DBus";
}
pub const ORG_FREEDESKTOP_DBUS_NAME: &str = "org.freedesktop.DBus";
#[derive(Copy, Clone, Debug)]
pub struct OrgFreedesktopDBusProperties<'a>(pub &'a arg::PropMap);
impl<'a> OrgFreedesktopDBusProperties<'a> {
pub fn from_interfaces(
interfaces: &'a ::std::collections::HashMap<String, arg::PropMap>,
) -> Option<Self> {
interfaces.get("org.freedesktop.DBus").map(Self)
}
pub fn features(&self) -> Option<&Vec<String>> {
arg::prop_cast(self.0, "Features")
}
pub fn interfaces(&self) -> Option<&Vec<String>> {
arg::prop_cast(self.0, "Interfaces")
}
}
pub trait OrgFreedesktopDBusIntrospectable {
fn introspect(&self) -> Result<String, tree::MethodErr>;
}
pub fn org_freedesktop_dbus_introspectable_server<F, T, D>(factory: &tree::Factory<tree::MTFn<D>, D>, data: D::Interface, f: F) -> tree::Interface<tree::MTFn<D>, D>
where
D: tree::DataType,
D::Method: Default,
T: OrgFreedesktopDBusIntrospectable,
F: 'static + for <'z> Fn(& 'z tree::MethodInfo<tree::MTFn<D>, D>) -> & 'z T,
{
let i = factory.interface("org.freedesktop.DBus.Introspectable", data);
let f = ::std::sync::Arc::new(f);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
let arg0 = d.introspect()?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("Introspect", Default::default(), h);
let m = m.out_arg(("", "s"));
let i = i.add_m(m);
i
}
pub const ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_NAME: &str = "org.freedesktop.DBus.Introspectable";
pub trait OrgFreedesktopDBusPeer {
fn get_machine_id(&self) -> Result<String, tree::MethodErr>;
fn ping(&self) -> Result<(), tree::MethodErr>;
}
pub fn org_freedesktop_dbus_peer_server<F, T, D>(factory: &tree::Factory<tree::MTFn<D>, D>, data: D::Interface, f: F) -> tree::Interface<tree::MTFn<D>, D>
where
D: tree::DataType,
D::Method: Default,
T: OrgFreedesktopDBusPeer,
F: 'static + for <'z> Fn(& 'z tree::MethodInfo<tree::MTFn<D>, D>) -> & 'z T,
{
let i = factory.interface("org.freedesktop.DBus.Peer", data);
let f = ::std::sync::Arc::new(f);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
let arg0 = d.get_machine_id()?;
let rm = minfo.msg.method_return();
let rm = rm.append1(arg0);
Ok(vec!(rm))
};
let m = factory.method("GetMachineId", Default::default(), h);
let m = m.out_arg(("", "s"));
let i = i.add_m(m);
let fclone = f.clone();
let h = move |minfo: &tree::MethodInfo<tree::MTFn<D>, D>| {
let d = fclone(minfo);
d.ping()?;
let rm = minfo.msg.method_return();
Ok(vec!(rm))
};
let m = factory.method("Ping", Default::default(), h);
let i = i.add_m(m);
i
}
pub const ORG_FREEDESKTOP_DBUS_PEER_NAME: &str = "org.freedesktop.DBus.Peer";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment