1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct AreChunksInstalled {
5 #[serde(rename = "@ItemId")]
6 pub item_id: String,
7 #[serde(rename = "ChunkIds", default)]
8 pub chunk_ids: Vec<i32>,
9}
10
11#[derive(Debug, Serialize, Deserialize)]
12pub struct AreChunksInstalledResponse {
13 #[serde(rename = "@ItemId")]
14 pub item_id: String,
15 #[serde(rename = "@Installed")]
16 pub installed: bool,
17 #[serde(rename = "ChunkIds", default)]
18 pub chunk_ids: Vec<i32>,
19}
20
21#[derive(Debug, Serialize, Deserialize)]
22pub enum ChunkState {
23 #[serde(rename = "UNKNOWN")]
24 Unknown,
25 #[serde(rename = "PAUSED")]
26 Paused,
27 #[serde(rename = "QUEUED")]
28 Queued,
29 #[serde(rename = "ERROR")]
30 Error,
31 #[serde(rename = "DOWNLOADING")]
32 Downloading,
33 #[serde(rename = "INSTALLING")]
34 Installing,
35 #[serde(rename = "INSTALLED")]
36 Installed,
37 #[serde(rename = "BUSY")]
38 Busy,
39}
40
41#[derive(Debug, Serialize, Deserialize)]
42pub struct ChunkStatus {
43 #[serde(rename = "@ChunkId")]
44 pub chunk_id: i32,
45 #[serde(rename = "@Name")]
46 pub name: String,
47 #[serde(rename = "@ItemId")]
48 pub item_id: String,
49 #[serde(rename = "@Type")]
50 pub r#type: ChunkType,
51 #[serde(rename = "@State")]
52 pub state: ChunkState,
53 #[serde(rename = "@Progress")]
54 pub progress: f32,
55 #[serde(rename = "@Size")]
56 pub size: u64,
57 #[serde(rename = "@ChunkETA")]
58 pub chunk_eta: i32,
59 #[serde(rename = "@TotalETA")]
60 pub total_eta: i32,
61}
62
63#[derive(Debug, Serialize, Deserialize)]
64pub enum ChunkType {
65 #[serde(rename = "UNKNOWN")]
66 Unknown,
67 #[serde(rename = "REQUIRED")]
68 Required,
69 #[serde(rename = "RECOMMENDED")]
70 Recommended,
71 #[serde(rename = "NORMAL")]
72 Normal,
73 #[serde(rename = "ONDEMAND")]
74 Ondemand,
75}
76
77#[derive(Debug, Serialize, Deserialize)]
78pub struct CreateChunk {
79 #[serde(rename = "@ItemId")]
80 pub item_id: String,
81 #[serde(rename = "Files", default)]
82 pub files: Vec<String>,
83}
84
85#[derive(Debug, Serialize, Deserialize)]
86pub struct CreateChunkResponse {
87 #[serde(rename = "@ChunkId")]
88 pub chunk_id: i32,
89}
90
91#[derive(Debug, Serialize, Deserialize)]
92pub struct GetChunkPriority {
93 #[serde(rename = "@ItemId")]
94 pub item_id: String,
95}
96
97#[derive(Debug, Serialize, Deserialize)]
98pub struct GetChunkPriorityResponse {
99 #[serde(rename = "@ItemId")]
100 pub item_id: String,
101 #[serde(rename = "ChunkIds", default)]
102 pub chunk_ids: Vec<i32>,
103}
104
105#[derive(Debug, Serialize, Deserialize)]
106pub struct IsFileDownloaded {
107 #[serde(rename = "@ItemId")]
108 pub item_id: String,
109 #[serde(rename = "@Filepath")]
110 pub filepath: String,
111}
112
113#[derive(Debug, Serialize, Deserialize)]
114pub struct IsFileDownloadedResponse {
115 #[serde(rename = "@ItemId")]
116 pub item_id: String,
117 #[serde(rename = "@Filepath")]
118 pub filepath: String,
119 #[serde(rename = "@Downloaded")]
120 pub downloaded: bool,
121}
122
123#[derive(Debug, Serialize, Deserialize)]
124pub struct IsProgressiveInstallationAvailable {
125 #[serde(rename = "@ItemId")]
126 pub item_id: String,
127}
128
129#[derive(Debug, Serialize, Deserialize)]
130pub struct IsProgressiveInstallationAvailableResponse {
131 #[serde(rename = "@ItemId")]
132 pub item_id: String,
133 #[serde(rename = "@Available")]
134 pub available: bool,
135}
136
137#[derive(Debug, Serialize, Deserialize)]
138pub struct QueryChunkFiles {
139 #[serde(rename = "@ItemId")]
140 pub item_id: String,
141 #[serde(rename = "@ChunkId")]
142 pub chunk_id: i32,
143}
144
145#[derive(Debug, Serialize, Deserialize)]
146pub struct QueryChunkFilesResponse {
147 #[serde(rename = "Files", default)]
148 pub files: Vec<String>,
149}
150
151#[derive(Debug, Serialize, Deserialize)]
152pub struct QueryChunkStatus {
153 #[serde(rename = "@ItemId")]
154 pub item_id: String,
155}
156
157#[derive(Debug, Serialize, Deserialize)]
158pub struct QueryChunkStatusResponse {
159 #[serde(rename = "ChunkStatus", default)]
160 pub chunk_status: Vec<ChunkStatus>,
161}
162
163#[derive(Debug, Serialize, Deserialize)]
164pub struct SetChunkPriority {
165 #[serde(rename = "@ItemId")]
166 pub item_id: String,
167 #[serde(rename = "ChunkIds", default)]
168 pub chunk_ids: Vec<i32>,
169}
170
171#[derive(Debug, Serialize, Deserialize)]
172pub struct SetDownloaderUtilization {
173 #[serde(rename = "@Utilization")]
174 pub utilization: f32,
175}