1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
use serde::Deserialize;
pub type TaskOutput = Result<String, String>;
pub mod client;
pub mod server;
#[derive(Clone, Copy)]
pub struct Task<N: PartialEq, T = ()> {
pub name: N,
pub exec: fn(&[&str], &T) -> TaskOutput,
}
#[derive(Deserialize)]
pub struct CompletedTask<N> {
pub name: 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),
}
|