1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use async_trait::async_trait;
use record::RecordData;

pub mod group;
pub mod record;
pub mod sampler;
pub mod output;

#[async_trait]
pub trait Sampler {
    async fn run(&self) -> RecordData;
}

#[async_trait]
pub trait Controller {
    async fn run(&self) -> Vec<RecordData>;
}

pub trait Output {
    fn write(&mut self, data: RecordData);
}