logo
pub trait Interface: Any + Send + Sync {
    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
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn get_all<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = HashMap<String, OwnedValue>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        'life4: 'async_trait,
        'life5: 'async_trait,
        Self: '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); 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

Return the name of the interface. Ex: “org.foo.MyInterface”

Get a property value. Returns None if the property doesn’t exist.

Return all the properties.

Set a property value.

Returns None if the property doesn’t exist.

This will only be invoked if set returned RequiresMut.

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.

Call a &mut self method.

This will only be invoked if call returned RequiresMut.

Write introspection XML to the writer, with the given indentation level.

Provided Methods

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.

Implementors