1pub mod app;
20pub mod cli;
21pub mod model;
22pub mod process;
23pub mod runtime;
24pub mod signal;
25pub mod tree;
26pub mod ui;
27
28#[cfg(all(feature = "debug_tui", debug_assertions))]
29mod debug_tui;
30
31use crate::runtime::run_interactive;
32use anyhow::Result;
33
34pub fn run(filter: Option<String>, regex_mode: bool, user_only: bool) -> Result<()> {
36 let compiled_filter = process::compile_filter(filter.clone(), regex_mode)?;
37 run_interactive(filter, compiled_filter, user_only)
38}
39
40#[cfg(all(feature = "debug_tui", debug_assertions))]
42#[doc(hidden)]
43pub fn run_debug_tui() -> Result<()> {
44 debug_tui::run()
45}
46
47#[cfg(test)]
48mod tests {
49 use super::run;
50
51 #[test]
52 fn run_returns_error_for_invalid_regex_before_terminal_setup() {
53 let result = run(Some("(".to_string()), true, false);
54 assert!(result.is_err());
55 }
56
57 #[cfg(all(feature = "debug_tui", debug_assertions))]
58 #[test]
59 fn run_debug_tui_symbol_is_available_when_feature_is_enabled() {
60 let debug_runner: fn() -> anyhow::Result<()> = super::run_debug_tui;
61 let _ = debug_runner;
62 }
63}