1#[cfg(feature = "winit")]
5use crate::app;
6#[cfg(feature = "single-instance")]
7use crate::dbus_activation;
8
9pub const fn app<M>(message: M) -> Action<M> {
10    Action::App(message)
11}
12#[cfg(feature = "winit")]
13pub const fn cosmic<M>(message: app::Action) -> Action<M> {
14    Action::Cosmic(message)
15}
16
17pub const fn none<M>() -> Action<M> {
18    Action::None
19}
20
21#[derive(Clone, Debug)]
22#[must_use]
23pub enum Action<M> {
24    App(M),
26    #[cfg(feature = "winit")]
27    Cosmic(app::Action),
29    #[cfg(feature = "single-instance")]
30    DbusActivation(dbus_activation::Message),
32    None,
34}
35
36impl<M> From<M> for Action<M> {
37    fn from(value: M) -> Self {
38        Self::App(value)
39    }
40}