use chrono::prelude::Local;
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use itm_decode::ExceptionAction;
use itm_decode::{TracePacket, MalformedPacket, TimestampDataRelation};
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Timestamp {
pub ts: chrono::DateTime<Local>,
pub data_relation: Option<TimestampDataRelation>,
pub diverged: bool,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct EventChunk {
pub timestamp: Timestamp,
pub events: Vec<EventType>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub enum TaskAction {
Entered,
Exited,
Returned,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub enum EventType {
Overflow,
Task {
name: String,
action: TaskAction,
},
Unknown(TracePacket),
Unmappable(TracePacket, String),
Invalid(MalformedPacket),
}