csgo_gsi_payload/
weapon.rs1use serde::Deserialize;
2
3#[derive(Deserialize, Debug, Clone)]
4pub enum WeaponType {
5 Knife,
6 Pistol,
7 Rifle,
8 SniperRifle,
9 #[serde(rename = "Submachine Gun")]
10 SubmachineGun,
11 #[serde(rename = "Machine Gun")]
12 MachineGun,
13 Shotgun,
14 Grenade,
15 C4,
16
17 Fists,
19 Melee,
20 Tablet,
21 #[serde(rename = "Breach Charge")]
22 BreachCharge,
23 #[serde(rename = "Bump Mine")]
24 BumpMine,
25
26 Unknown, }
28
29impl Default for WeaponType {
30 fn default() -> Self {
31 Self::Unknown
32 }
33}
34
35#[derive(Deserialize, Debug, Clone)]
36#[serde(rename_all = "lowercase")]
37pub enum WeaponState {
38 Holstered,
39 Active,
40 Reloading,
41}
42
43#[derive(Deserialize, Debug, Clone)]
44pub struct Weapon {
45 pub name: String,
47 #[serde(rename = "paintkit")]
49 pub paint_kit: String,
50 #[serde(default)]
52 pub r#type: WeaponType, pub state: WeaponState,
55 pub ammo_clip: Option<u16>,
56 pub ammo_clip_max: Option<u16>,
57 pub ammo_reserve: Option<u16>,
58}