1use std::collections::HashSet;
6
7#[derive(Clone, Debug, Default, PartialEq, Eq)]
8pub struct TelemetryConfig {
9 pub enable_connect_disconnect: bool,
10 pub enable_iface_logger: bool,
11 pub enable_power_logger: bool,
12 pub enable_recovery_logger: bool,
13 pub enable_scan_logger: bool,
14 pub enable_pno_scan_logger: bool,
15 pub enable_sme_timeout_logger: bool,
16 pub enable_toggle_logger: bool,
17 pub enable_tx_power_scenario_logger: bool,
18 pub enable_client_iface_counters_logger: bool,
19}
20
21impl TelemetryConfig {
22 pub fn all() -> Self {
23 Self {
24 enable_connect_disconnect: true,
25 enable_iface_logger: true,
26 enable_power_logger: true,
27 enable_recovery_logger: true,
28 enable_scan_logger: true,
29 enable_pno_scan_logger: true,
30 enable_sme_timeout_logger: true,
31 enable_toggle_logger: true,
32 enable_tx_power_scenario_logger: true,
33 enable_client_iface_counters_logger: true,
34 }
35 }
36}
37
38#[derive(Clone, Debug, PartialEq, Eq)]
39pub enum CobaltAllowlist {
40 All,
41 Only(HashSet<u32>),
42}
43
44impl CobaltAllowlist {
45 pub fn contains(&self, metric_id: u32) -> bool {
46 match self {
47 CobaltAllowlist::All => true,
48 CobaltAllowlist::Only(set) => set.contains(&metric_id),
49 }
50 }
51}