ssr_core/task/
level.rs

1use serde::{Deserialize, Serialize};
2use std::time::SystemTime;
3
4pub trait TaskLevel<'a>: Serialize + Deserialize<'a> {
5    type Context;
6    type SharedState: Default + Serialize + Deserialize<'a>;
7    fn update(&mut self, shared_state: &mut Self::SharedState, context: Self::Context);
8    fn next_repetition(
9        &self,
10        shared_state: &Self::SharedState,
11        desired_retention: f64,
12    ) -> SystemTime;
13}