1use serde::{Deserialize, Serialize};
4
5#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
7pub struct Inventory {
8 #[serde(rename = "csl")]
10 pub consumable_slot_lot: i32,
11 pub bag: Bags,
13 #[serde(default)]
15 pub grps: Vec<Group>,
16 pub items: Items,
18}
19
20#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
21pub struct Bags {
23 #[serde(rename = "b")]
24 children: Vec<Bag>,
26}
27
28#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
32pub struct Bag {
33 #[serde(rename = "t")]
35 pub ty: u32,
36 #[serde(rename = "m")]
38 pub max: u32,
39}
40
41#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
43pub struct Group {
44 pub attr_id: String,
46 pub attr_l: String,
48 pub attr_n: String,
50 pub attr_t: u32,
52 pub attr_u: String,
54}
55
56#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
58pub struct Items {
59 #[serde(rename = "nn")]
61 pub attr_nn: Option<String>,
62
63 #[serde(rename = "in")]
65 pub children: Vec<ItemBag>,
66}
67
68#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
70pub struct ItemBag {
71 #[serde(rename = "t")]
73 pub ty: u32,
74 #[serde(default, rename = "i")]
76 pub children: Vec<Item>,
77}
78
79#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
81pub struct Item {
82 #[serde(rename = "b")]
84 pub bound: bool,
85 #[serde(rename = "c")]
87 pub count: u32,
88 #[serde(default, rename = "eq")]
92 pub equipped: bool,
93 #[serde(rename = "id")]
95 pub id: u64,
96 #[serde(rename = "l")]
98 pub template: u32,
99 #[serde(rename = "s")]
101 pub slot: u32,
102 #[serde(rename = "sk")]
104 pub subkey: u64,
105 #[serde(rename = "x")]
107 pub x: Option<ItemExtra>,
108}
109
110#[derive(Default, Debug, PartialEq, Deserialize, Serialize)]
112#[allow(missing_docs)]
113pub struct ItemExtra {
114 #[serde(rename = "b")]
115 pub attr_b: Option<String>,
116 #[serde(rename = "ma")]
118 pub module_assembly: String,
119 #[serde(rename = "ub")]
120 pub attr_ub: Option<String>,
121 #[serde(rename = "ud")]
122 pub attr_ud: Option<String>,
123 #[serde(rename = "ui")]
124 pub attr_ui: Option<String>,
125 #[serde(rename = "um")]
126 pub attr_um: Option<String>,
127 #[serde(rename = "un")]
129 pub attr_un: Option<String>,
130 #[serde(rename = "uo")]
131 pub attr_uo: Option<String>,
132 #[serde(rename = "up")]
133 pub attr_up: Option<String>,
134}