kftray_network_monitor/
lib.rs

1mod config_manager;
2mod controller;
3mod health;
4mod monitor;
5mod network;
6mod types;
7
8use std::sync::OnceLock;
9
10pub use controller::NetworkMonitorController;
11pub use types::{
12    MonitorConfig,
13    NetworkMonitorError,
14};
15
16static DEFAULT_CONTROLLER: OnceLock<NetworkMonitorController> = OnceLock::new();
17
18fn get_default_controller() -> &'static NetworkMonitorController {
19    DEFAULT_CONTROLLER.get_or_init(NetworkMonitorController::new)
20}
21
22pub async fn start() -> Result<(), NetworkMonitorError> {
23    get_default_controller().start().await
24}
25
26pub async fn stop() -> Result<(), NetworkMonitorError> {
27    get_default_controller().stop().await
28}
29
30pub async fn is_running() -> bool {
31    get_default_controller().is_running().await
32}
33
34pub async fn restart() -> Result<(), NetworkMonitorError> {
35    get_default_controller().restart().await
36}