core/module/
module_provider.rs

1use std::sync::Arc;
2
3use config::Config;
4use git::Repository;
5use parking_lot::Mutex;
6use todo_file::TodoFile;
7
8use super::{Module, State};
9
10pub(crate) trait ModuleProvider {
11	fn new(config: &Config, repository: Repository, todo_file: &Arc<Mutex<TodoFile>>) -> Self;
12
13	fn get_mut_module(&mut self, _state: State) -> &mut dyn Module;
14
15	fn get_module(&self, _state: State) -> &dyn Module;
16}