summaryrefslogtreecommitdiff
path: root/src/tasks.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tasks.rs')
-rw-r--r--src/tasks.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/tasks.rs b/src/tasks.rs
index e08c876..85e57c5 100644
--- a/src/tasks.rs
+++ b/src/tasks.rs
@@ -5,7 +5,7 @@ pub mod client;
pub mod server;
#[derive(Clone, Copy)]
-pub struct Task<N, T = ()> {
+pub struct Task<N: PartialEq, T = ()> {
pub name: N,
pub exec: fn(&[&str], &T) -> TaskOutput,
}
@@ -16,6 +16,12 @@ pub struct CompletedTask<N> {
pub output: Option<TaskOutput>,
}
+impl<N> From<(N, TaskOutput)> for CompletedTask<N> {
+ fn from((name, output): (N, TaskOutput)) -> Self {
+ CompletedTask { name, output: Some(output) }
+ }
+}
+
#[derive(Debug)]
pub enum IntoTaskErr {
NotFound(String),