Skip to main content

subtr_actor/stats/analysis_graph/nodes/
rush.rs

1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5/// Detects rushes/over-commits from ball/player/possession state during live play.
6pub struct RushNode {
7    calculator: RushCalculator,
8}
9
10impl RushNode {
11    pub fn new() -> Self {
12        Self::with_config(RushCalculatorConfig::default())
13    }
14
15    pub fn with_config(config: RushCalculatorConfig) -> Self {
16        Self {
17            calculator: RushCalculator::with_config(config),
18        }
19    }
20}
21
22impl_analysis_node! {
23    node = RushNode,
24    state = RushCalculator,
25    name = "rush",
26    emitted_events = crate::stats::calculators::RUSH_EMITTED_EVENTS,
27    dependencies = [
28        frame_info_dependency() => FrameInfo,
29        gameplay_state_dependency() => GameplayState,
30        ball_frame_state_dependency() => BallFrameState,
31        player_frame_state_dependency() => PlayerFrameState,
32        frame_events_state_dependency() => FrameEventsState,
33        possession_state_dependency() => PossessionState,
34        live_play_dependency() => LivePlayState,
35    ],
36    call = calculator.update_parts,
37    finish = calculator.finish_calculation,
38}