1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use crate::error::SchedulerError;
use crate::model::task::{TaskModel, TaskData};
use c3p0_common::NewModel;

pub mod in_memory;

pub trait SchedulerRepository {

    fn start(&self) -> Result<(), SchedulerError>;

    fn fetch_all(&self) -> Result<Vec<TaskModel>, SchedulerError>;

    fn save(&self, task: NewModel<TaskData>) -> Result<TaskModel, SchedulerError>;

    fn delete(&self, task: TaskModel) -> Result<u64, SchedulerError>;

    fn delete_by_task_name(&self, task_name: &str) -> Result<u64, SchedulerError>;

}