pub mod dhcp_leases; pub mod dns; pub mod dummy_sender; pub mod nmap_scanner; pub mod ping; pub mod wifi_availability; use crate::monitor::*; pub fn factory( name: &str, config: serde_yaml::Value, ) -> Result, Box> { match name { "dummy_sender" => Ok(Box::new(dummy_sender::DummySender::new(config)?)), "wifi_availability" => Ok(Box::new(wifi_availability::WifiAvailability::new(config)?)), "dhcp_leases" => Ok(Box::new(dhcp_leases::DHCPLeases::new(config)?)), "nmap_scanner" => Ok(Box::new(nmap_scanner::NmapScanner::new(config)?)), "ping" => Ok(Box::new(ping::Ping::new(config)?)), "dns" => Ok(Box::new(dns::DNS::new(config)?)), _ => panic!("Unknown monitor name: {}", name), } }