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
use mercator_db::CoreQueryParameters;
use mercator_db::DataBase;

pub trait Validator {
    type ValidationResult;

    fn validate(&self) -> Self::ValidationResult;
}

pub trait Predictor {
    fn predict(&self, db: &DataBase) -> Result<f64, String>;
}

pub trait Executor<'e> {
    type ResultSet;

    fn execute<'f: 'e>(
        &self,
        core_id: &str,
        parameters: &CoreQueryParameters<'f>,
    ) -> Self::ResultSet;
}

pub trait Evaluator<'e> {
    type Object;

    fn eval(&self, object: Self::Object) -> bool;
}