Trait zbus::Interface

source ·
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
        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); 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§

source

fn name() -> InterfaceName<'static>where
    Self: Sized,

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

source

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.

source

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.

source

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.

source

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.

source

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.

source

fn introspect_to_writer(&self, writer: &mut dyn Write, level: usize)

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

Provided Methods§

source

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.

Implementors§