csgo_gsi/update/
player.rs1use std::collections::HashMap;
4
5use serde::{Serialize, Deserialize};
6
7#[derive(Clone, Debug, Deserialize, Serialize)]
9#[serde(deny_unknown_fields)]
10pub struct Player {
11 #[serde(rename = "steamid")]
13 pub steam_id: String,
14 pub name: String,
16 pub observer_slot: Option<u64>,
18 pub activity: Activity,
20 pub match_stats: Option<MatchStats>,
22 pub state: Option<State>,
24 pub team: Option<super::Team>,
26 #[serde(default)]
28 pub weapons: HashMap<String, Weapon>, pub clan: Option<String>,
31}
32
33#[derive(Clone, Debug, Deserialize, Serialize)]
35#[serde(rename_all = "lowercase")]
36pub enum Activity {
37 Menu,
39 Playing,
41}
42
43#[derive(Clone, Debug, Deserialize, Serialize)]
45#[serde(deny_unknown_fields)]
46pub struct MatchStats {
47 pub kills: i64,
49 pub assists: u64,
51 pub deaths: u64,
53 pub mvps: u64,
55 pub score: u64,
57}
58
59#[derive(Clone, Debug, Deserialize, Serialize)]
61#[serde(deny_unknown_fields)]
62pub struct State {
63 pub health: u64,
65 pub armor: u64,
67 pub helmet: bool,
69 pub flashed: u64,
71 pub smoked: u64,
73 pub burning: u64,
75 pub money: u64,
77 pub round_kills: i64,
79 pub round_killhs: u64,
81 pub equip_value: u64,
83 pub round_totaldmg: Option<u64>,
85 #[serde(rename = "defusekit")]
87 pub defuse_kit: Option<bool>
88}
89
90#[derive(Clone, Debug, Deserialize, Serialize)]
92#[serde(deny_unknown_fields)]
93pub struct Weapon {
94 pub name: String,
96 pub paintkit: String,
98 pub r#type: Option<WeaponType>, pub state: WeaponState,
102 pub ammo_clip: Option<u64>,
104 pub ammo_clip_max: Option<u64>,
106 pub ammo_reserve: Option<u64>,
108}
109
110#[derive(Clone, Debug, Deserialize, Serialize)]
112pub enum WeaponType {
113 Knife,
115 Pistol,
117 #[serde(rename = "Submachine Gun")]
119 SMG,
120 #[serde(rename = "Machine Gun")]
122 MachineGun,
123 Rifle,
125 SniperRifle,
127 Shotgun,
129 StackableItem,
131 Grenade,
133 C4,
135}
136
137#[derive(Clone, Debug, Deserialize, Serialize)]
139#[serde(rename_all = "lowercase")]
140pub enum WeaponState {
141 Holstered,
143 Active,
145 Reloading,
147}