evtc\skill/
timing.rs
1use crate::{extract::Extract, Event, StateChange, TryExtract};
2
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone)]
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9pub struct SkillTiming {
10 pub skill_id: u32,
11 pub action: u64,
12 pub millisecond: u64,
13}
14
15impl Extract for SkillTiming {
16 #[inline]
17 unsafe fn extract(event: &Event) -> Self {
18 Self {
19 skill_id: event.skill_id,
20 action: event.src_agent,
21 millisecond: event.dst_agent,
22 }
23 }
24}
25
26impl TryExtract for SkillTiming {
27 #[inline]
28 fn can_extract(event: &Event) -> bool {
29 event.get_statechange() == StateChange::SkillTiming
30 }
31}