pub struct KickoffEvent {Show 50 fields
pub start_time: f32,
pub start_frame: usize,
pub end_time: f32,
pub end_frame: usize,
pub live_action_start_time: Option<f32>,
pub live_action_start_frame: Option<usize>,
pub movement_start_time: f32,
pub movement_start_frame: usize,
pub kickoff_type: KickoffType,
pub kickoff_direction: KickoffDirection,
pub first_touch_time: Option<f32>,
pub first_touch_frame: Option<usize>,
pub first_touch_team_is_team_0: Option<bool>,
pub first_touch_player: Option<PlayerId>,
pub first_touch_id: Option<u64>,
pub first_touch_ball_position: Option<[f32; 3]>,
pub first_touch_ball_abs_x: Option<f32>,
pub first_touch_ball_height: Option<f32>,
pub first_touch_ball_velocity: Option<[f32; 3]>,
pub team_zero_taker_touch_time: Option<f32>,
pub team_zero_taker_touch_frame: Option<usize>,
pub team_one_taker_touch_time: Option<f32>,
pub team_one_taker_touch_frame: Option<usize>,
pub taker_touch_delay_seconds: Option<f32>,
pub exit_velocity: Option<[f32; 3]>,
pub exit_speed: Option<f32>,
pub exit_y_velocity: Option<f32>,
pub first_follow_up_touch_time: Option<f32>,
pub first_follow_up_touch_frame: Option<usize>,
pub first_follow_up_touch_team_is_team_0: Option<bool>,
pub first_follow_up_touch_player: Option<PlayerId>,
pub outcome: KickoffOutcome,
pub winning_team_is_team_0: Option<bool>,
pub win_strength: Option<f32>,
pub win_strength_band: KickoffWinStrengthBand,
pub kickoff_possession_outcome: KickoffPossessionOutcome,
pub kickoff_possession_team_is_team_0: Option<bool>,
pub kickoff_goal: bool,
pub scoring_team_is_team_0: Option<bool>,
pub time_to_goal: Option<f32>,
pub advantage: KickoffAdvantage,
pub advantage_team_is_team_0: Option<bool>,
pub advantage_time: Option<f32>,
pub advantage_frame: Option<usize>,
pub advantage_seconds_after_first_touch: Option<f32>,
pub advantage_player: Option<PlayerId>,
pub team_zero_taker: Option<KickoffTakerEvent>,
pub team_one_taker: Option<KickoffTakerEvent>,
pub team_zero_non_takers: Vec<KickoffSupportEvent>,
pub team_one_non_takers: Vec<KickoffSupportEvent>,
}Expand description
A kickoff with its type, outcome, and participant context.
Fields§
§start_time: f32§start_frame: usize§end_time: f32§end_frame: usize§live_action_start_time: Option<f32>§live_action_start_frame: Option<usize>§movement_start_time: f32§movement_start_frame: usize§kickoff_type: KickoffType§kickoff_direction: KickoffDirection§first_touch_time: Option<f32>§first_touch_frame: Option<usize>§first_touch_team_is_team_0: Option<bool>§first_touch_player: Option<PlayerId>§first_touch_id: Option<u64>Identity of the first kickoff TouchEvent. Join on
this instead of player + frame.
first_touch_ball_position: Option<[f32; 3]>Ball position (field coordinates) at the frame of the first kickoff touch.
first_touch_ball_abs_x: Option<f32>Lateral centrality of the first-touch contact: abs(x) of the ball
position at first touch. 0.0 means the ball was struck dead center.
first_touch_ball_height: Option<f32>Ball height (z) at first touch. On a standard kickoff the ball rests at center field, so values above the resting radius indicate the ball was popped or hit upward.
first_touch_ball_velocity: Option<[f32; 3]>Ball velocity at the first-touch frame (immediately after contact).
team_zero_taker_touch_time: Option<f32>§team_zero_taker_touch_frame: Option<usize>§team_one_taker_touch_time: Option<f32>§team_one_taker_touch_frame: Option<usize>§taker_touch_delay_seconds: Option<f32>§exit_velocity: Option<[f32; 3]>§exit_speed: Option<f32>§exit_y_velocity: Option<f32>§first_follow_up_touch_time: Option<f32>§first_follow_up_touch_frame: Option<usize>§first_follow_up_touch_team_is_team_0: Option<bool>§first_follow_up_touch_player: Option<PlayerId>§outcome: KickoffOutcome§winning_team_is_team_0: Option<bool>§win_strength: Option<f32>Projected depth of the ball into the losing half at kickoff resolution,
as a fraction of the half-field length (0.0..=1.0). The projection
adds half a second of the ball’s y velocity so direction of travel
counts toward (or against) the win.
win_strength_band: KickoffWinStrengthBand§kickoff_possession_outcome: KickoffPossessionOutcome§kickoff_possession_team_is_team_0: Option<bool>§kickoff_goal: bool§scoring_team_is_team_0: Option<bool>§time_to_goal: Option<f32>§advantage: KickoffAdvantageSee KickoffAdvantage. Unlike outcome and
kickoff_possession_outcome, which read the immediate exchange, this
answers “who did the kickoff actually end up being good for” once play
settled.
advantage_team_is_team_0: Option<bool>§advantage_time: Option<f32>§advantage_frame: Option<usize>§advantage_seconds_after_first_touch: Option<f32>§advantage_player: Option<PlayerId>For possession advantages, the player whose touch completed the possession run. Pressure and goal advantages are team-level.
team_zero_taker: Option<KickoffTakerEvent>§team_one_taker: Option<KickoffTakerEvent>§team_zero_non_takers: Vec<KickoffSupportEvent>§team_one_non_takers: Vec<KickoffSupportEvent>Trait Implementations§
Source§impl Clone for KickoffEvent
impl Clone for KickoffEvent
Source§impl Debug for KickoffEvent
impl Debug for KickoffEvent
Source§impl PartialEq for KickoffEvent
impl PartialEq for KickoffEvent
Source§impl Serialize for KickoffEvent
impl Serialize for KickoffEvent
impl StructuralPartialEq for KickoffEvent
Source§impl TS for KickoffEvent
impl TS for KickoffEvent
Source§type WithoutGenerics = KickoffEvent
type WithoutGenerics = KickoffEvent
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or ().
The only requirement for these dummy types is that EXPORT_TO must be None. Read moreSource§type OptionInnerType = KickoffEvent
type OptionInnerType = KickoffEvent
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete() -> String
fn decl_concrete() -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl() -> String
fn decl() -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline() -> String
fn inline() -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened() -> String
fn inline_flattened() -> String
This function will panic if the type cannot be flattened.
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported.The returned path does not include the base directory from
TS_RS_EXPORT_DIR. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies() -> Vec<Dependency>where
Self: 'static,
fn dependencies() -> Vec<Dependency>where
Self: 'static,
Source§fn export() -> Result<(), ExportError>where
Self: 'static,
fn export() -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all() -> Result<(), ExportError>where
Self: 'static,
fn export_all() -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export. Read moreSource§fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use
TS::export. Read more