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}