summaryrefslogtreecommitdiffstats
path: root/native/src/command/action.rs
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/command/action.rs')
-rw-r--r--native/src/command/action.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/native/src/command/action.rs b/native/src/command/action.rs
index 23d6e96e..77be1b59 100644
--- a/native/src/command/action.rs
+++ b/native/src/command/action.rs
@@ -1,9 +1,19 @@
use crate::clipboard;
use crate::window;
+use std::fmt;
+
+/// An action that a [`Command`] can perform.
+///
+/// [`Command`]: crate::Command
pub enum Action<T> {
+ /// Run a [`Future`] to completion.
Future(iced_futures::BoxFuture<T>),
+
+ /// Run a clipboard action.
Clipboard(clipboard::Action<T>),
+
+ /// Run a window action.
Window(window::Action),
}
@@ -22,3 +32,15 @@ impl<T> Action<T> {
}
}
}
+
+impl<T> fmt::Debug for Action<T> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ Self::Future(_) => write!(f, "Action::Future"),
+ Self::Clipboard(action) => {
+ write!(f, "Action::Clipboard({:?})", action)
+ }
+ Self::Window(action) => write!(f, "Action::Window({:?})", action),
+ }
+ }
+}