selectors.rs
1 use crate::app::{App, NetworkScanLoadState}; 2 3 pub fn access_point_ip_text(app: &App) -> String { 4 app.wireless_status 5 .as_ref() 6 .map(|wireless_status| wireless_status.ap_ipv4.clone()) 7 .unwrap_or_else(|| "0.0.0.0".to_owned()) 8 } 9 10 pub fn network_scan_status_text(app: &App) -> String { 11 match &app.network_scan_load_state { 12 NetworkScanLoadState::Idle => "Idle".to_owned(), 13 NetworkScanLoadState::Loading => "Scanning...".to_owned(), 14 NetworkScanLoadState::Loaded => format!("Found {} network(s)", app.wireless_networks.len()), 15 NetworkScanLoadState::Error(error_message) => format!("Error: {error_message}"), 16 } 17 } 18 19 pub fn connected_network_identity(app: &App) -> (Option<String>, String) { 20 let connected_ssid = app 21 .wireless_status 22 .as_ref() 23 .filter(|wireless_status| wireless_status.connected) 24 .map(|wireless_status| wireless_status.sta_ssid.clone()); 25 26 let connected_station_ip = app 27 .wireless_status 28 .as_ref() 29 .filter(|wireless_status| wireless_status.connected) 30 .map(|wireless_status| wireless_status.sta_ipv4.clone()) 31 .unwrap_or_default(); 32 33 (connected_ssid, connected_station_ip) 34 }