wayle-notification 0.1.4

Desktop notification service with popup management
Documentation
use tracing::instrument;
use zbus::Connection;

use crate::{
    error::Error,
    types::{
        Signal,
        dbus::{SERVICE_INTERFACE, SERVICE_PATH},
    },
};

pub(super) struct NotificationControls;

impl NotificationControls {
    #[instrument(skip(connection), fields(notification_id = %id, action = %action_key), err)]
    pub(super) async fn invoke(
        connection: &Connection,
        id: &u32,
        action_key: &str,
    ) -> Result<(), Error> {
        connection
            .emit_signal(
                None::<()>,
                SERVICE_PATH,
                SERVICE_INTERFACE,
                Signal::ActionInvoked.as_str(),
                &(id, action_key),
            )
            .await?;

        Ok(())
    }
}