use std::collections::HashMap; use std::sync::{Arc, Mutex, RwLock}; use tauri::async_runtime::JoinHandle; use crate::ble::SensorSource; use crate::device::Device; /// Last trainer targets, reapplied after reconnect. #[derive(Default)] pub struct TrainerTargets { pub power: Option, // watts pub cadence: Option, // rpm (raw, as entered by user) } pub struct State { pub source: Arc, /// Все найденные при скане устройства (для поиска по id при подключении). pub devices: RwLock>, /// id подключённого станка (тренера). pub trainer: Mutex>, /// Потоки телеметрии по категориям ("hr"/"cadence"/"trainer") pub streams: Mutex>>, /// Last trainer targets, reapplied after reconnect. pub trainer_targets: Mutex, }