summaryrefslogtreecommitdiffstats
path: root/src/process/process_module.rs
blob: aa5e1d82cf8b2a05a2c6d60edaff3a8617815abe (plain)
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
29
30
31
32
33
34
35
36
37
38
use crate::git_interactive::GitInteractive;
use crate::input::input_handler::InputHandler;
use crate::input::Input;
use crate::process::handle_input_result::HandleInputResult;
use crate::process::process_result::ProcessResult;
use crate::process::state::State;
use crate::view::view_data::ViewData;
use crate::view::View;

pub trait ProcessModule {
	fn activate(&mut self, _state: &State, _git_interactive: &GitInteractive) {}

	fn deactivate(&mut self) {}

	fn build_view_data(&mut self, _view: &View<'_>, _git_interactive: &GitInteractive) -> &ViewData;

	fn process(&mut self, _git_interactive: &mut GitInteractive, _view: &View<'_>) -> ProcessResult {
		ProcessResult::new()
	}

	fn handle_input(
		&mut self,
		_input_handler: &InputHandler<'_>,
		_git_interactive: &mut GitInteractive,
		_view: &View<'_>,
	) -> HandleInputResult
	{
		HandleInputResult::new(Input::Other)
	}

	fn get_help_keybindings_descriptions(&self) -> Option<&[(&str, &str)]> {
		None
	}

	fn get_help_view(&self) -> Option<ViewData> {
		None
	}
}