Added rayon

This commit is contained in:
Marco De Araujo 2025-12-28 08:18:15 -04:00
parent 0b9487bde5
commit 63496cfc93
3 changed files with 816 additions and 119 deletions

921
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -11,9 +11,10 @@ fluent-templates = "0.13.2"
unic-langid = "0.9.6"
sys-locale = "0.3.2"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.146"
serde_json = "1.0.148"
once_cell = "1.19"
url = "2.5.7"
ratatui = "0.29.0"
ratatui = "0.30.0"
crossterm = "0.29.0"
chrono = "0.4.42"
rayon = "1.11.0"

View file

@ -1,6 +1,7 @@
use crate::core::models::{UnifiedData, UnifiedGroupData};
use crate::data::heartbeat::model::HeartbeatEntry;
use crate::i18n::t;
use rayon::prelude::*;
#[derive(Debug, Clone, PartialEq)]
pub enum MonitorStatus {
@ -93,8 +94,8 @@ fn get_status_history(heartbeats: &[HeartbeatEntry]) -> Vec<MonitorStatus> {
fn add_monitor_view_state(group: UnifiedGroupData) -> Vec<MonitorViewState> {
let mut monitors = Vec::with_capacity(group.monitors.len());
group.monitors.into_par_iter().map(|monitor| {
for monitor in group.monitors {
let status_history = get_status_history(&monitor.heartbeats);
let status = match monitor.heartbeats.last().map(|h| h.status) {
@ -115,14 +116,14 @@ fn add_monitor_view_state(group: UnifiedGroupData) -> Vec<MonitorViewState> {
.map(|u| u.get_perc_formated())
.unwrap_or_else(|| t("unknown").to_string());
monitors.push(MonitorViewState {
MonitorViewState {
name: monitor.name,
status,
response_time,
uptime_24h,
status_history,
});
}
}
}).collect_into_vec(&mut monitors);
monitors.sort_by_key(|m| m.name.clone());