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§

impl AnalysisNode for AirDribbleGoalNode

Source§

impl AnalysisNode for AirDribbleNode

Source§

impl AnalysisNode for BackboardBounceStateNode

Source§

impl AnalysisNode for BackboardNode

Source§

impl AnalysisNode for BallCarryNode

Source§

impl AnalysisNode for BallFrameStateNode

Source§

impl AnalysisNode for BallHalfNode

Source§

impl AnalysisNode for BallThirdNode

Source§

impl AnalysisNode for BoostNode

Source§

impl AnalysisNode for BumpGoalNode

Source§

impl AnalysisNode for BumpNode

Source§

impl AnalysisNode for CeilingShotGoalNode

Source§

impl AnalysisNode for CeilingShotNode

Source§

impl AnalysisNode for CenterNode

Source§

impl AnalysisNode for ContinuousBallControlNode

Source§

impl AnalysisNode for ControlledPlayNode

Source§

impl AnalysisNode for CounterAttackGoalNode

Source§

impl AnalysisNode for DemoGoalNode

Source§

impl AnalysisNode for DemoNode

Source§

impl AnalysisNode for DodgeResetNode

Source§

impl AnalysisNode for DoubleTapGoalNode

Source§

impl AnalysisNode for DoubleTapNode

Source§

impl AnalysisNode for EmptyNetGoalNode

Source§

impl AnalysisNode for FiftyFiftyNode

Source§

impl AnalysisNode for FiftyFiftyStateNode

Source§

impl AnalysisNode for FlickGoalNode

Source§

impl AnalysisNode for FlickNode

Source§

impl AnalysisNode for FlipImpulseNode

Source§

impl AnalysisNode for FlipIntoBallGoalNode

Source§

impl AnalysisNode for FlipResetGoalNode

Source§

impl AnalysisNode for FrameEventsStateNode

Source§

impl AnalysisNode for FrameInfoNode

Source§

impl AnalysisNode for GameplayStateNode

Source§

impl AnalysisNode for HalfFlipNode

Source§

impl AnalysisNode for HalfVolleyGoalNode

Source§

impl AnalysisNode for HalfVolleyNode

Source§

impl AnalysisNode for HighAerialGoalNode

Source§

impl AnalysisNode for KickoffGoalNode

Source§

impl AnalysisNode for KickoffNode

Source§

impl AnalysisNode for LivePlayNode

Source§

impl AnalysisNode for LongDistanceGoalNode

Source§

impl AnalysisNode for LoosePossessionNode

Source§

impl AnalysisNode for MatchStatsNode

Source§

impl AnalysisNode for MovementNode

Source§

impl AnalysisNode for OneTimerGoalNode

Source§

impl AnalysisNode for OneTimerNode

Source§

impl AnalysisNode for OwnHalfGoalNode

Source§

impl AnalysisNode for PassNode

Source§

impl AnalysisNode for PassingGoalNode

Source§

impl AnalysisNode for PlayerFrameStateNode

Source§

impl AnalysisNode for PlayerPossessionNode

Source§

impl AnalysisNode for PlayerVerticalStateNode

Source§

impl AnalysisNode for PositioningNode

Source§

impl AnalysisNode for PossessionNode

Source§

impl AnalysisNode for PossessionStateNode

Source§

impl AnalysisNode for PowerslideNode

Source§

impl AnalysisNode for RotationNode

Source§

impl AnalysisNode for RushNode

Source§

impl AnalysisNode for SettingsNode

Source§

impl AnalysisNode for SpeedFlipNode

Source§

impl AnalysisNode for StatsProjectionNode

Source§

impl AnalysisNode for StatsTimelineEventsNode

Source§

impl AnalysisNode for StatsTimelineFrameNode

Source§

impl AnalysisNode for SustainedPressureGoalNode

Source§

impl AnalysisNode for TerritorialPressureNode

Source§

impl AnalysisNode for TouchNode

Source§

impl AnalysisNode for TouchStateNode

Source§

impl AnalysisNode for WallAerialNode

Source§

impl AnalysisNode for WallAerialShotNode

Source§

impl AnalysisNode for WavedashNode

Source§

impl AnalysisNode for WhiffNode