pub struct PlayerPossessionEvent {Show 20 fields
pub player_id: PlayerId,
pub is_team_0: bool,
pub start_frame: usize,
pub end_frame: usize,
pub start_time: f32,
pub end_time: f32,
pub duration: f32,
pub touch_count: u32,
pub aerial_touch_count: u32,
pub wall_touch_count: u32,
pub advance_distance: f32,
pub retreat_distance: f32,
pub carry_time: f32,
pub air_dribble_time: f32,
pub carry_count: u32,
pub air_dribble_count: u32,
pub close_time: f32,
pub sustained_control: bool,
pub start_field_third: Option<String>,
pub end_field_third: Option<String>,
}Expand description
A contiguous single-player possession span, merged across field-third changes and brief contested interruptions, enriched with the touch, ball movement, and sustained-control activity that happened while the player owned the ball.
Fields§
§player_id: PlayerId§is_team_0: bool§start_frame: usize§end_frame: usize§start_time: f32§end_time: f32§duration: f32Seconds the player actually held possession. Excludes contested gap
time inside a merged span and the loose tail after the player’s final
touch (once the ball is hit away, the remaining flight time is nobody’s
possession — mirroring how team possession backdates a loss to the last
touch), so it can be less than end_time - start_time.
touch_count: u32§aerial_touch_count: u32§wall_touch_count: u32§advance_distance: f32Ball travel toward the opponent goal while the player had possession (uu).
retreat_distance: f32Ball travel toward the player’s own goal while the player had possession (uu).
carry_time: f32Seconds of the span spent in a grounded ball-carry sample.
air_dribble_time: f32Seconds of the span spent in an air-dribble sample.
carry_count: u32§air_dribble_count: u32§close_time: f32Seconds of the span the owner spent within close range of the ball (same proximity signal as controlled play).
sustained_control: boolTrue when the span meets the controlled-play qualifying criteria (touch count, possessed duration, first-to-last touch span, and close time). Controlled play is conceptually a labeled subset of player possession; this label lets consumers treat it that way.
start_field_third: Option<String>§end_field_third: Option<String>Trait Implementations§
Source§impl Clone for PlayerPossessionEvent
impl Clone for PlayerPossessionEvent
Source§impl Debug for PlayerPossessionEvent
impl Debug for PlayerPossessionEvent
Source§impl PartialEq for PlayerPossessionEvent
impl PartialEq for PlayerPossessionEvent
Source§impl Serialize for PlayerPossessionEvent
impl Serialize for PlayerPossessionEvent
Source§impl StatsEvent for PlayerPossessionEvent
impl StatsEvent for PlayerPossessionEvent
const DEFINITION: EventDefinition = PLAYER_POSSESSION_EVENT_DEFINITION
impl StructuralPartialEq for PlayerPossessionEvent
Source§impl TS for PlayerPossessionEvent
impl TS for PlayerPossessionEvent
Source§type WithoutGenerics = PlayerPossessionEvent
type WithoutGenerics = PlayerPossessionEvent
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 = PlayerPossessionEvent
type OptionInnerType = PlayerPossessionEvent
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