Skip to main content

AnalysisNode

Trait AnalysisNode 

Source
pub trait AnalysisNode: 'static {
    type State: 'static;

    // Required methods
    fn name(&self) -> &'static str;
    fn evaluate(
        &mut self,
        ctx: &AnalysisStateContext<'_>,
    ) -> SubtrActorResult<()>;
    fn state(&self) -> &Self::State;

    // Provided methods
    fn emitted_events(&self) -> &'static [EmittedEvent] { ... }
    fn on_replay_meta(&mut self, _meta: &ReplayMeta) -> SubtrActorResult<()> { ... }
    fn dependencies(&self) -> Vec<AnalysisDependency> { ... }
    fn finish(
        &mut self,
        _ctx: &AnalysisStateContext<'_>,
    ) -> SubtrActorResult<()> { ... }
}
Expand description

A node in the AnalysisGraph: consumes upstream state, runs once per frame, and exposes its own typed state for downstream nodes.

Implementors are the catalog of analysis nodes (see the nodes module and the Implementors list below). A node declares what it reads via dependencies, reads it from the AnalysisStateContext in evaluate, and publishes State via state. The blanket AnalysisNodeDyn impl makes every AnalysisNode usable as a boxed graph node.

Required Associated Types§

Source

type State: 'static

The typed state this node publishes to downstream nodes.

Required Methods§

Source

fn name(&self) -> &'static str

Stable identifier for this node, used for dependency wiring and the built-in node registry.

Source

fn evaluate(&mut self, ctx: &AnalysisStateContext<'_>) -> SubtrActorResult<()>

Source

fn state(&self) -> &Self::State

Provided Methods§

Source

fn emitted_events(&self) -> &'static [EmittedEvent]

Static catalog of the events this node emits, if any.

The node is the source of truth for what it produces: a graph’s emitted events come from walking its actual nodes (see AnalysisGraph::emitted_events), so there is no name-keyed side registry that can drift out of sync with the nodes themselves.

Source

fn on_replay_meta(&mut self, _meta: &ReplayMeta) -> SubtrActorResult<()>

Source

fn dependencies(&self) -> Vec<AnalysisDependency>

Source

fn finish(&mut self, _ctx: &AnalysisStateContext<'_>) -> SubtrActorResult<()>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl AnalysisNode for AerialGoalNode

Source§

type State = AerialGoalCalculator

Source§

impl AnalysisNode for AirDribbleGoalNode

Source§

type State = AirDribbleGoalCalculator

Source§

impl AnalysisNode for BackboardBounceStateNode

Source§

type State = BackboardBounceState

Source§

impl AnalysisNode for BackboardNode

Source§

type State = BackboardCalculator

Source§

impl AnalysisNode for BallCarryNode

Source§

type State = BallCarryCalculator

Source§

impl AnalysisNode for BallFrameStateNode

Source§

type State = BallFrameState

Source§

impl AnalysisNode for BallHalfNode

Source§

type State = BallHalfCalculator

Source§

impl AnalysisNode for BallThirdNode

Source§

type State = BallThirdCalculator

Source§

impl AnalysisNode for BoostNode

Source§

type State = BoostCalculator

Source§

impl AnalysisNode for BumpGoalNode

Source§

type State = BumpGoalCalculator

Source§

impl AnalysisNode for BumpNode

Source§

type State = BumpCalculator

Source§

impl AnalysisNode for CeilingShotGoalNode

Source§

type State = CeilingShotGoalCalculator

Source§

impl AnalysisNode for CeilingShotNode

Source§

type State = CeilingShotCalculator

Source§

impl AnalysisNode for CenterNode

Source§

type State = CenterCalculator

Source§

impl AnalysisNode for ContinuousBallControlNode

Source§

type State = ContinuousBallControlState

Source§

impl AnalysisNode for ControlledPlayNode

Source§

type State = ControlledPlayCalculator

Source§

impl AnalysisNode for CounterAttackGoalNode

Source§

type State = CounterAttackGoalCalculator

Source§

impl AnalysisNode for DemoGoalNode

Source§

type State = DemoGoalCalculator

Source§

impl AnalysisNode for DemoNode

Source§

type State = DemoCalculator

Source§

impl AnalysisNode for DodgeResetNode

Source§

type State = DodgeResetCalculator

Source§

impl AnalysisNode for DoubleTapGoalNode

Source§

type State = DoubleTapGoalCalculator

Source§

impl AnalysisNode for DoubleTapNode

Source§

type State = DoubleTapCalculator

Source§

impl AnalysisNode for EmptyNetGoalNode

Source§

type State = EmptyNetGoalCalculator

Source§

impl AnalysisNode for FiftyFiftyNode

Source§

type State = FiftyFiftyCalculator

Source§

impl AnalysisNode for FiftyFiftyStateNode

Source§

type State = FiftyFiftyState

Source§

impl AnalysisNode for FlickGoalNode

Source§

type State = FlickGoalCalculator

Source§

impl AnalysisNode for FlickNode

Source§

type State = FlickCalculator

Source§

impl AnalysisNode for FlipImpulseNode

Source§

type State = FlipImpulseCalculator

Source§

impl AnalysisNode for FlipIntoBallGoalNode

Source§

type State = FlipIntoBallGoalCalculator

Source§

impl AnalysisNode for FlipResetGoalNode

Source§

type State = FlipResetGoalCalculator

Source§

impl AnalysisNode for FrameEventsStateNode

Source§

type State = FrameEventsState

Source§

impl AnalysisNode for FrameInfoNode

Source§

type State = FrameInfo

Source§

impl AnalysisNode for GameplayStateNode

Source§

type State = GameplayState

Source§

impl AnalysisNode for HalfFlipNode

Source§

type State = HalfFlipCalculator

Source§

impl AnalysisNode for HalfVolleyGoalNode

Source§

type State = HalfVolleyGoalCalculator

Source§

impl AnalysisNode for HalfVolleyNode

Source§

type State = HalfVolleyCalculator

Source§

impl AnalysisNode for HighAerialGoalNode

Source§

type State = HighAerialGoalCalculator

Source§

impl AnalysisNode for KickoffGoalNode

Source§

type State = KickoffGoalCalculator

Source§

impl AnalysisNode for KickoffNode

Source§

type State = KickoffCalculator

Source§

impl AnalysisNode for LivePlayNode

Source§

type State = LivePlayState

Source§

impl AnalysisNode for LongDistanceGoalNode

Source§

type State = LongDistanceGoalCalculator

Source§

impl AnalysisNode for MatchStatsNode

Source§

type State = MatchStatsCalculator

Source§

impl AnalysisNode for MovementNode

Source§

type State = MovementCalculator

Source§

impl AnalysisNode for OneTimerGoalNode

Source§

type State = OneTimerGoalCalculator

Source§

impl AnalysisNode for OneTimerNode

Source§

type State = OneTimerCalculator

Source§

impl AnalysisNode for OwnHalfGoalNode

Source§

type State = OwnHalfGoalCalculator

Source§

impl AnalysisNode for PassNode

Source§

type State = PassCalculator

Source§

impl AnalysisNode for PassingGoalNode

Source§

type State = PassingGoalCalculator

Source§

impl AnalysisNode for PlayerFrameStateNode

Source§

type State = PlayerFrameState

Source§

impl AnalysisNode for PlayerPossessionNode

Source§

type State = PlayerPossessionCalculator

Source§

impl AnalysisNode for PlayerVerticalStateNode

Source§

type State = PlayerVerticalState

Source§

impl AnalysisNode for PositioningNode

Source§

type State = PositioningCalculator

Source§

impl AnalysisNode for PossessionNode

Source§

type State = PossessionCalculator

Source§

impl AnalysisNode for PossessionStateNode

Source§

type State = PossessionState

Source§

impl AnalysisNode for PowerslideNode

Source§

type State = PowerslideCalculator

Source§

impl AnalysisNode for RotationNode

Source§

type State = RotationCalculator

Source§

impl AnalysisNode for RushNode

Source§

type State = RushCalculator

Source§

impl AnalysisNode for SettingsNode

Source§

type State = SettingsCalculator

Source§

impl AnalysisNode for SpeedFlipNode

Source§

type State = SpeedFlipCalculator

Source§

impl AnalysisNode for StatsProjectionNode

Source§

impl AnalysisNode for StatsTimelineEventsNode

Source§

impl AnalysisNode for StatsTimelineFrameNode

Source§

impl AnalysisNode for SustainedPressureGoalNode

Source§

type State = SustainedPressureGoalCalculator

Source§

impl AnalysisNode for TerritorialPressureNode

Source§

type State = TerritorialPressureCalculator

Source§

impl AnalysisNode for TouchNode

Source§

type State = TouchCalculator

Source§

impl AnalysisNode for TouchStateNode

Source§

type State = TouchState

Source§

impl AnalysisNode for WallAerialNode

Source§

type State = WallAerialCalculator

Source§

impl AnalysisNode for WallAerialShotNode

Source§

type State = WallAerialShotCalculator

Source§

impl AnalysisNode for WavedashNode

Source§

type State = WavedashCalculator

Source§

impl AnalysisNode for WhiffNode

Source§

type State = WhiffCalculator