pub trait Interface:
Any
+ Send
+ Sync {
// Required methods
fn name() -> InterfaceName<'static>
where Self: Sized;
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
property_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Option<Result<OwnedValue>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = HashMap<String, OwnedValue>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn set_mut<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
property_name: &'life1 str,
value: &'life2 Value<'life3>,
ctxt: &'life4 SignalContext<'life5>,
) -> Pin<Box<dyn Future<Output = Option<Result<()>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait;
fn call<'call>(
&'call self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>,
) -> DispatchResult<'call>;
fn call_mut<'call>(
&'call mut self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>,
) -> DispatchResult<'call>;
fn introspect_to_writer(&self, writer: &mut dyn Write, level: usize);
// Provided method
fn set<'call>(
&'call self,
property_name: &'call str,
value: &'call Value<'_>,
ctxt: &'call SignalContext<'_>,
) -> DispatchResult<'call> { ... }
}
Expand description
The trait used to dispatch messages to an interface instance.
Note: It is not recommended to manually implement this trait. The dbus_interface
macro
implements it for you.
Required Methods§
sourcefn name() -> InterfaceName<'static>where
Self: Sized,
fn name() -> InterfaceName<'static>where
Self: Sized,
Return the name of the interface. Ex: “org.foo.MyInterface”
sourcefn get<'life0, 'life1, 'async_trait>(
&'life0 self,
property_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Option<Result<OwnedValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
property_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Option<Result<OwnedValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a property value. Returns None
if the property doesn’t exist.
sourcefn get_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = HashMap<String, OwnedValue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = HashMap<String, OwnedValue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Return all the properties.
sourcefn set_mut<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
property_name: &'life1 str,
value: &'life2 Value<'life3>,
ctxt: &'life4 SignalContext<'life5>,
) -> Pin<Box<dyn Future<Output = Option<Result<()>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn set_mut<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
property_name: &'life1 str,
value: &'life2 Value<'life3>,
ctxt: &'life4 SignalContext<'life5>,
) -> Pin<Box<dyn Future<Output = Option<Result<()>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Set a property value.
Returns None
if the property doesn’t exist.
This will only be invoked if set
returned RequiresMut
.
sourcefn call<'call>(
&'call self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>,
) -> DispatchResult<'call>
fn call<'call>( &'call self, server: &'call ObjectServer, connection: &'call Connection, msg: &'call Message, name: MemberName<'call>, ) -> DispatchResult<'call>
Call a method.
Return DispatchResult::NotFound
if the method doesn’t exist, or
DispatchResult::RequiresMut
if call_mut
should be used instead.
It is valid, though inefficient, for this to always return RequiresMut
.
sourcefn call_mut<'call>(
&'call mut self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>,
) -> DispatchResult<'call>
fn call_mut<'call>( &'call mut self, server: &'call ObjectServer, connection: &'call Connection, msg: &'call Message, name: MemberName<'call>, ) -> DispatchResult<'call>
Call a &mut self
method.
This will only be invoked if call
returned RequiresMut
.
sourcefn introspect_to_writer(&self, writer: &mut dyn Write, level: usize)
fn introspect_to_writer(&self, writer: &mut dyn Write, level: usize)
Write introspection XML to the writer, with the given indentation level.
Provided Methods§
sourcefn set<'call>(
&'call self,
property_name: &'call str,
value: &'call Value<'_>,
ctxt: &'call SignalContext<'_>,
) -> DispatchResult<'call>
fn set<'call>( &'call self, property_name: &'call str, value: &'call Value<'_>, ctxt: &'call SignalContext<'_>, ) -> DispatchResult<'call>
Set a property value.
Return DispatchResult::NotFound
if the property doesn’t exist, or
DispatchResult::RequiresMut
if set_mut
should be used instead. The default
implementation just returns RequiresMut
.