diff options
Diffstat (limited to 'src/tasks.rs')
| -rw-r--r-- | src/tasks.rs | 8 |
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), |
