use static_assertions::assert_impl_all;
use super::{Error, Result};
pub(crate) struct Peer;
#[crate::interface(
name = "org.freedesktop.DBus.Peer",
introspection_docs = false,
proxy(visibility = "pub")
)]
impl Peer {
fn ping(&self) {}
fn get_machine_id(&self) -> Result<String> {
let mut id = match std::fs::read_to_string("/var/lib/dbus/machine-id") {
Ok(id) => id,
Err(e) => {
if let Ok(id) = std::fs::read_to_string("/etc/machine-id") {
id
} else {
return Err(Error::IOError(format!(
"Failed to read from /var/lib/dbus/machine-id or /etc/machine-id: {e}"
)));
}
}
};
let len = id.trim_end().len();
id.truncate(len);
Ok(id)
}
}
assert_impl_all!(PeerProxy<'_>: Send, Sync, Unpin);
#[cfg(feature = "blocking-api")]
assert_impl_all!(PeerProxyBlocking<'_>: Send, Sync, Unpin);