use std::time::Duration; pub mod manager; pub mod ping_request; pub mod ping_result; pub mod target_state; pub mod tui; pub mod app_settings; pub const SECONDS_BETWEEN_DISPLAY: u32 = 1; pub const SECONDS_BETWEEN_PING: u32 = 2; const SECONDS_IN_MINUTE: u32 = 60; const SECONDS_IN_HOUR: u32 = SECONDS_IN_MINUTE * 60; const SECONDS_IN_DAY: u32 = SECONDS_IN_HOUR * 24; pub fn duration_to_string(to_convert: Duration) -> String { let mut total_seconds = to_convert.as_secs() as u32; let mut working_string = String::new(); if total_seconds > 86400 { // days let num_days = (total_seconds / SECONDS_IN_DAY) as u32; working_string = format!("{} days", num_days); total_seconds = total_seconds - (num_days * SECONDS_IN_DAY); } if total_seconds > 3600 { // hours let num_hours = (total_seconds / SECONDS_IN_HOUR) as u32; if num_hours > 0 { working_string = format!("{} {} hours", working_string, num_hours); total_seconds = total_seconds - (num_hours * SECONDS_IN_HOUR); } } if total_seconds > 60 { let num_minutes = (total_seconds / SECONDS_IN_MINUTE) as u32; if num_minutes > 0 { working_string = format!("{} {} minutes", working_string, num_minutes); total_seconds = total_seconds - (num_minutes * SECONDS_IN_MINUTE); } // minutes } working_string = format!("{} {} seconds", working_string, total_seconds); working_string }