trace_recorder_parser/streaming/event/
base.rs

1use crate::streaming::event::{EventCode, EventCount, EventParameterCount};
2use crate::time::Timestamp;
3use derive_more::Display;
4
5#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Display)]
6#[display(
7    fmt = "[{timestamp}]:{}:{}:{event_count}",
8    "self.code.event_id()",
9    "self.code.parameter_count()"
10)]
11pub struct BaseEvent {
12    pub code: EventCode,
13    pub event_count: EventCount,
14    pub timestamp: Timestamp,
15    pub(crate) parameters: [u32; EventParameterCount::MAX],
16}
17
18impl BaseEvent {
19    pub fn parameters(&self) -> &[u32] {
20        // SAFETY: parameter_count is always <= EventParameterCount::MAX
21        let num_params = usize::from(self.code.parameter_count());
22        debug_assert!(num_params <= self.parameters.len());
23        &self.parameters[..num_params]
24    }
25}