zbus/dbus_error.rs
1use crate::{
2 message::{Header, Message},
3 names::ErrorName,
4 Result,
5};
6
7/// A trait that needs to be implemented by error types to be returned from D-Bus methods.
8///
9/// Typically, you'd use the [`crate::fdo::Error`] since that covers quite a lot of failures but
10/// occasionally you might find yourself needing to use a custom error type. You'll need to
11/// implement this trait for your error type. The easiest way to achieve that is to make use of the
12/// [`DBusError` macro][dm].
13///
14/// [dm]: derive.DBusError.html
15pub trait DBusError {
16 /// Generate an error reply message for the given method call.
17 fn create_reply(&self, msg: &Header<'_>) -> Result<Message>;
18
19 // The name of the error.
20 //
21 // Every D-Bus error must have a name. See [`ErrorName`] for more information.
22 fn name(&self) -> ErrorName<'_>;
23
24 // The optional description for the error.
25 fn description(&self) -> Option<&str>;
26}