kftray_network_monitor/
lib.rs1mod 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}