pub enum AnalyticsEvent {
ClientConnected {
ts: String,
username: String,
platform: String,
version: Option<String>,
reconnected: bool,
},
GameStarted {
ts: String,
game_id: String,
room_id: String,
format: GameFormat,
engine: EngineKind,
hosted: bool,
official: bool,
table_style: Option<String>,
starting_life: i32,
players: Vec<SeatInfo>,
},
GameEnded {
ts: String,
game_id: String,
room_id: String,
reason: GameEndReason,
duration_s: f64,
game_over: bool,
winner: Option<String>,
conceded: Vec<String>,
fatal_message: Option<String>,
reported: bool,
turns: Option<u32>,
},
TransportUsed {
ts: String,
room_id: String,
game_id: String,
host: String,
seats: Vec<SeatTransportReport>,
},
PlaneQuality {
ts: String,
room_id: Option<String>,
username: String,
peer: String,
plane: String,
outcome: String,
phase: String,
connect_ms: Option<u32>,
rtt_ms: Option<u32>,
relay_rtt_ms: Option<u32>,
candidate_pair: Option<String>,
},
EngineStats {Show 27 fields
ts: String,
room_id: Option<String>,
username: String,
report_id: String,
game_id: Option<String>,
engine: String,
client_version: String,
platform: String,
format: Option<String>,
seats: u32,
multiplayer: bool,
duration_s: u32,
end_reason: String,
decisions: u32,
turnaround_p50: u32,
turnaround_p90: u32,
turnaround_max: u32,
engine_p50: Option<u32>,
engine_p90: Option<u32>,
engine_max: Option<u32>,
engine_same_p50: Option<u32>,
engine_same_p90: Option<u32>,
engine_same_max: Option<u32>,
engine_cross_p50: Option<u32>,
engine_cross_p90: Option<u32>,
engine_cross_max: Option<u32>,
think_hidden: u32,
},
DeckSelected {
ts: String,
room_id: String,
username: String,
is_bot: bool,
deck_name: String,
commander: Option<String>,
cards: Vec<CardEntry>,
sideboard_count: usize,
},
SeatJoined {
ts: String,
room_id: String,
username: String,
is_bot: bool,
observer: bool,
},
SeatLeft {
ts: String,
room_id: String,
username: String,
},
}Variants§
ClientConnected
Fields
GameStarted
GameEnded
Fields
§
reason: GameEndReasonTransportUsed
Which seats left the relay’s data plane, as reported by the host.
PlaneQuality
One end’s account of one direct-plane attempt, whether or not it worked.
Fields
EngineStats
Fields
§
room_id: Option<String>The room the seat was in when the report landed, which at game over is often none: the report outlives the seat’s membership. Nothing downstream reads it, so it stays a breadcrumb rather than a key.
DeckSelected
Fields
SeatJoined
SeatLeft
Trait Implementations§
Source§impl Debug for AnalyticsEvent
impl Debug for AnalyticsEvent
Auto Trait Implementations§
impl Freeze for AnalyticsEvent
impl RefUnwindSafe for AnalyticsEvent
impl Send for AnalyticsEvent
impl Sync for AnalyticsEvent
impl Unpin for AnalyticsEvent
impl UnsafeUnpin for AnalyticsEvent
impl UnwindSafe for AnalyticsEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more