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
32
33
34
35
36
37
38
39
40
41
|
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),
}
|