Skip to main content

subtr_actor/stats/analysis_graph/nodes/
possession_state.rs

1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5/// Tracks current ball-possession state from touches and live-play state as shared state.
6pub struct PossessionStateNode {
7    calculator: PossessionStateCalculator,
8    state: PossessionState,
9}
10
11impl PossessionStateNode {
12    pub fn new() -> Self {
13        Self {
14            calculator: PossessionStateCalculator::new(),
15            state: PossessionState::default(),
16        }
17    }
18}
19
20impl_analysis_node! {
21    node = PossessionStateNode,
22    state = PossessionState,
23    name = "possession_state",
24    dependencies = [
25        frame_info_dependency() => FrameInfo,
26        touch_state_dependency() => TouchState,
27        live_play_dependency() => LivePlayState,
28    ],
29    update_state = calculator.update,
30}