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
mod supervised_classification;
mod supervised_regression;
use serde::de::DeserializeOwned;
pub use self::supervised_classification::SupervisedClassification;
pub use self::supervised_regression::SupervisedRegression;
use measure_accumulator::MeasureAccumulator;
pub trait Task {
fn id(&self) -> &str;
fn name(&self) -> &str;
fn run_static<X, Y, F, M>(&self, flow: F) -> M
where
F: Fn(&mut Iterator<Item = (&X, &Y)>, &mut Iterator<Item = &X>) -> Box<Iterator<Item = Y>>,
X: DeserializeOwned,
Y: DeserializeOwned,
M: MeasureAccumulator<Y>;
fn run<X, Y, F, M>(&self, flow: F) -> M
where
F: Fn(&mut Iterator<Item = (&[X], &Y)>, &mut Iterator<Item = &[X]>)
-> Box<Iterator<Item = Y>>,
X: DeserializeOwned,
Y: DeserializeOwned,
M: MeasureAccumulator<Y>;
}