use offline_protocol_transport::{TransportStatus, TransportType};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct TransportStateEvent {
pub timestamp_ms: i64,
pub transport: TransportType,
pub previous: TransportStatus,
pub current: TransportStatus,
}
impl TransportStateEvent {
pub const NAME: &'static str = "protocol.transport.state_changed";
pub fn telemetry_name(&self) -> &'static str {
Self::NAME
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn name_is_stable() {
let event = TransportStateEvent {
timestamp_ms: 0,
transport: TransportType::BLE,
previous: TransportStatus::Disconnected,
current: TransportStatus::Available,
};
assert_eq!(
TransportStateEvent::NAME,
"protocol.transport.state_changed"
);
assert_eq!(event.telemetry_name(), "protocol.transport.state_changed");
}
#[test]
fn transitions_are_comparable() {
let a = TransportStateEvent {
timestamp_ms: 1,
transport: TransportType::BLE,
previous: TransportStatus::Disconnected,
current: TransportStatus::Available,
};
let b = a;
assert_eq!(a, b);
}
}