1use serde::{Deserialize, Serialize};
6
7use super::common::XlsxInnerXml;
8
9#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
14pub struct DecodeCellAnchor {
15 #[serde(rename = "@editAs", default)]
16 pub edit_as: Option<String>,
17 #[serde(rename = "from", default)]
18 pub from: Option<DecodeFrom>,
19 #[serde(rename = "to", default)]
20 pub to: Option<DecodeTo>,
21 #[serde(rename = "ext", default)]
22 pub ext: Option<DecodePositiveSize2D>,
23 #[serde(rename = "sp", default)]
24 pub sp: Option<DecodeSp>,
25 #[serde(rename = "pic", default)]
26 pub pic: Option<DecodePic>,
27 #[serde(rename = "graphicFrame", default)]
28 pub graphic_frame: Option<super::drawing::XlsxGraphicFrame>,
29 #[serde(rename = "clientData", default)]
30 pub client_data: Option<DecodeClientData>,
31 #[serde(rename = "AlternateContent", default)]
32 pub alternate_content: Vec<XlsxAlternateContent>,
33}
34
35#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
38pub struct DecodeCellAnchorPos {
39 #[serde(rename = "@editAs", default)]
40 pub edit_as: Option<String>,
41 #[serde(rename = "from", default)]
42 pub from: Option<XlsxFrom>,
43 #[serde(rename = "to", default)]
44 pub to: Option<XlsxTo>,
45 #[serde(rename = "pos", default)]
46 pub pos: Option<XlsxInnerXml>,
47 #[serde(rename = "ext", default)]
48 pub ext: Option<XlsxPositiveSize2D>,
49 #[serde(rename = "sp", default)]
50 pub sp: Option<XlsxSp>,
51 #[serde(rename = "grpSp", default)]
52 pub grp_sp: Option<XlsxInnerXml>,
53 #[serde(rename = "graphicFrame", default)]
54 pub graphic_frame: Option<XlsxInnerXml>,
55 #[serde(rename = "cxnSp", default)]
56 pub cxn_sp: Option<XlsxInnerXml>,
57 #[serde(rename = "pic", default)]
58 pub pic: Option<XlsxInnerXml>,
59 #[serde(rename = "contentPart", default)]
60 pub content_part: Option<XlsxInnerXml>,
61 #[serde(rename = "AlternateContent", default)]
62 pub alternate_content: Vec<XlsxAlternateContent>,
63 #[serde(rename = "clientData", default)]
64 pub client_data: Option<XlsxInnerXml>,
65}
66
67#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
69#[serde(rename = "Choice")]
70pub struct DecodeChoice {
71 #[serde(rename = "@a14", default)]
72 pub xmlns_a14: Option<String>,
73 #[serde(rename = "@sle15", default)]
74 pub xmlns_sle15: Option<String>,
75 #[serde(rename = "@Requires", default)]
76 pub requires: Option<String>,
77 #[serde(rename = "graphicFrame", default)]
78 pub graphic_frame: DecodeGraphicFrame,
79}
80
81#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
83#[serde(rename = "graphicFrame")]
84pub struct DecodeGraphicFrame {
85 #[serde(rename = "@macro", default)]
86 pub macro_name: String,
87 #[serde(rename = "nvGraphicFramePr", default)]
88 pub nv_graphic_frame_pr: DecodeNvGraphicFramePr,
89}
90
91#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
93#[serde(rename = "nvGraphicFramePr")]
94pub struct DecodeNvGraphicFramePr {
95 #[serde(rename = "cNvPr", default)]
96 pub c_nv_pr: DecodeCNvPr,
97}
98
99#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
101#[serde(rename = "sp")]
102pub struct DecodeSp {
103 #[serde(rename = "@macro", default)]
104 pub macro_name: Option<String>,
105 #[serde(rename = "@textlink", default)]
106 pub text_link: Option<String>,
107 #[serde(rename = "@fLocksText", default)]
108 pub f_locks_text: bool,
109 #[serde(rename = "@fPublished", default)]
110 pub f_published: Option<bool>,
111 #[serde(rename = "nvSpPr", default)]
112 pub nv_sp_pr: Option<DecodeNvSpPr>,
113 #[serde(rename = "spPr", default)]
114 pub sp_pr: Option<DecodeSpPr>,
115}
116
117#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
120#[serde(rename = "nvSpPr")]
121pub struct DecodeNvSpPr {
122 #[serde(rename = "cNvPr", default)]
123 pub c_nv_pr: Option<DecodeCNvPr>,
124 #[serde(rename = "extLst", default)]
125 pub ext_lst: Option<DecodePositiveSize2D>,
126 #[serde(rename = "cNvSpPr", default)]
127 pub c_nv_sp_pr: Option<DecodeCNvSpPr>,
128}
129
130#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
133#[serde(rename = "cNvSpPr")]
134pub struct DecodeCNvSpPr {
135 #[serde(rename = "@txBox", default)]
136 pub tx_box: bool,
137}
138
139#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
144#[serde(rename = "xdr:wsDr")]
145pub struct DecodeWsDr {
146 #[serde(rename = "@xmlns:a", default)]
147 pub a: String,
148 #[serde(rename = "@xmlns:xdr", default)]
149 pub xdr: String,
150 #[serde(rename = "@xmlns:r", default)]
151 pub r: String,
152 #[serde(rename = "AlternateContent", default)]
153 pub alternate_content: Vec<XlsxInnerXml>,
154 #[serde(rename = "oneCellAnchor", default)]
155 pub one_cell_anchor: Vec<DecodeCellAnchor>,
156 #[serde(rename = "twoCellAnchor", default)]
157 pub two_cell_anchor: Vec<DecodeCellAnchor>,
158}
159
160#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
163#[serde(rename = "cNvPr")]
164pub struct DecodeCNvPr {
165 #[serde(rename = "@id", default)]
166 pub id: i32,
167 #[serde(rename = "@name", default)]
168 pub name: String,
169 #[serde(rename = "@descr", default)]
170 pub descr: String,
171 #[serde(rename = "@title", default)]
172 pub title: Option<String>,
173 #[serde(rename = "hlinkClick", default)]
174 pub hlink_click: Option<DecodeHlinkClick>,
175}
176
177#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
181#[serde(rename = "hlinkClick")]
182pub struct DecodeHlinkClick {
183 #[serde(rename = "@id", default)]
184 pub id: Option<String>,
185 #[serde(rename = "@invalidUrl", default)]
186 pub invalid_url: Option<String>,
187 #[serde(rename = "@action", default)]
188 pub action: Option<String>,
189 #[serde(rename = "@tgtFrame", default)]
190 pub tgt_frame: Option<String>,
191 #[serde(rename = "@tooltip", default)]
192 pub tooltip: Option<String>,
193 #[serde(rename = "@history", default)]
194 pub history: bool,
195 #[serde(rename = "@highlightClick", default)]
196 pub highlight_click: bool,
197 #[serde(rename = "@endSnd", default)]
198 pub end_snd: bool,
199}
200
201#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
204#[serde(rename = "picLocks")]
205pub struct DecodePicLocks {
206 #[serde(rename = "@noAdjustHandles", default)]
207 pub no_adjust_handles: bool,
208 #[serde(rename = "@noChangeArrowheads", default)]
209 pub no_change_arrowheads: bool,
210 #[serde(rename = "@noChangeAspect", default)]
211 pub no_change_aspect: bool,
212 #[serde(rename = "@noChangeShapeType", default)]
213 pub no_change_shape_type: bool,
214 #[serde(rename = "@noCrop", default)]
215 pub no_crop: bool,
216 #[serde(rename = "@noEditPoints", default)]
217 pub no_edit_points: bool,
218 #[serde(rename = "@noGrp", default)]
219 pub no_grp: bool,
220 #[serde(rename = "@noMove", default)]
221 pub no_move: bool,
222 #[serde(rename = "@noResize", default)]
223 pub no_resize: bool,
224 #[serde(rename = "@noRot", default)]
225 pub no_rot: bool,
226 #[serde(rename = "@noSelect", default)]
227 pub no_select: bool,
228}
229
230#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
233#[serde(rename = "blip")]
234pub struct DecodeBlip {
235 #[serde(rename = "@embed", default)]
236 pub embed: String,
237 #[serde(rename = "@cstate", default)]
238 pub cstate: Option<String>,
239 #[serde(rename = "@r", default)]
240 pub r: String,
241}
242
243#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
246#[serde(rename = "stretch")]
247pub struct DecodeStretch {
248 #[serde(rename = "fillRect", default)]
249 pub fill_rect: String,
250}
251
252#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
255#[serde(rename = "off")]
256pub struct DecodeOff {
257 #[serde(rename = "@x", default)]
258 pub x: i64,
259 #[serde(rename = "@y", default)]
260 pub y: i64,
261}
262
263#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
265#[serde(rename = "ext")]
266pub struct DecodePositiveSize2D {
267 #[serde(rename = "@cx", default)]
268 pub cx: i64,
269 #[serde(rename = "@cy", default)]
270 pub cy: i64,
271}
272
273#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
276#[serde(rename = "prstGeom")]
277pub struct DecodePrstGeom {
278 #[serde(rename = "@prst", default)]
279 pub prst: String,
280}
281
282#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
285#[serde(rename = "xfrm")]
286pub struct DecodeXfrm {
287 #[serde(rename = "off", default)]
288 pub off: DecodeOff,
289 #[serde(rename = "ext", default)]
290 pub ext: DecodePositiveSize2D,
291}
292
293#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
296#[serde(rename = "cNvPicPr")]
297pub struct DecodeCNvPicPr {
298 #[serde(rename = "picLocks", default)]
299 pub pic_locks: DecodePicLocks,
300}
301
302#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
305#[serde(rename = "nvPicPr")]
306pub struct DecodeNvPicPr {
307 #[serde(rename = "cNvPr", default)]
308 pub c_nv_pr: DecodeCNvPr,
309 #[serde(rename = "cNvPicPr", default)]
310 pub c_nv_pic_pr: DecodeCNvPicPr,
311}
312
313#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
316#[serde(rename = "blipFill")]
317pub struct DecodeBlipFill {
318 #[serde(rename = "blip", default)]
319 pub blip: DecodeBlip,
320 #[serde(rename = "stretch", default)]
321 pub stretch: DecodeStretch,
322}
323
324#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
327#[serde(rename = "spPr")]
328pub struct DecodeSpPr {
329 #[serde(rename = "xfrm", default)]
330 pub xfrm: DecodeXfrm,
331 #[serde(rename = "prstGeom", default)]
332 pub prst_geom: DecodePrstGeom,
333}
334
335#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
340#[serde(rename = "pic")]
341pub struct DecodePic {
342 #[serde(rename = "nvPicPr", default)]
343 pub nv_pic_pr: DecodeNvPicPr,
344 #[serde(rename = "blipFill", default)]
345 pub blip_fill: DecodeBlipFill,
346 #[serde(rename = "spPr", default)]
347 pub sp_pr: DecodeSpPr,
348}
349
350#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
352#[serde(rename = "from")]
353pub struct DecodeFrom {
354 #[serde(rename = "col", default)]
355 pub col: i32,
356 #[serde(rename = "colOff", default)]
357 pub col_off: i64,
358 #[serde(rename = "row", default)]
359 pub row: i32,
360 #[serde(rename = "rowOff", default)]
361 pub row_off: i64,
362}
363
364#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
366#[serde(rename = "to")]
367pub struct DecodeTo {
368 #[serde(rename = "col", default)]
369 pub col: i32,
370 #[serde(rename = "colOff", default)]
371 pub col_off: i64,
372 #[serde(rename = "row", default)]
373 pub row: i32,
374 #[serde(rename = "rowOff", default)]
375 pub row_off: i64,
376}
377
378#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
382#[serde(rename = "clientData")]
383pub struct DecodeClientData {
384 #[serde(rename = "@fLocksWithSheet", default)]
385 pub f_locks_with_sheet: bool,
386 #[serde(rename = "@fPrintsWithSheet", default)]
387 pub f_prints_with_sheet: bool,
388}
389
390#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
392#[serde(rename = "cellImages")]
393pub struct DecodeCellImages {
394 #[serde(rename = "cellImage", default)]
395 pub cell_image: Vec<DecodeCellImage>,
396}
397
398#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
401#[serde(rename = "cellImage")]
402pub struct DecodeCellImage {
403 #[serde(rename = "pic", default)]
404 pub pic: DecodePic,
405}
406
407#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
417#[serde(rename = "AlternateContent")]
418pub struct XlsxAlternateContent {
419 #[serde(rename = "@xmlns:mc", default)]
420 pub xmlns_mc: Option<String>,
421 #[serde(rename = "$value", default)]
422 pub content: XlsxInnerXml,
423}
424
425#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
427#[serde(rename = "from")]
428pub struct XlsxFrom {
429 #[serde(rename = "col", default)]
430 pub col: i32,
431 #[serde(rename = "colOff", default)]
432 pub col_off: i64,
433 #[serde(rename = "row", default)]
434 pub row: i32,
435 #[serde(rename = "rowOff", default)]
436 pub row_off: i64,
437}
438
439#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
441#[serde(rename = "to")]
442pub struct XlsxTo {
443 #[serde(rename = "col", default)]
444 pub col: i32,
445 #[serde(rename = "colOff", default)]
446 pub col_off: i64,
447 #[serde(rename = "row", default)]
448 pub row: i32,
449 #[serde(rename = "rowOff", default)]
450 pub row_off: i64,
451}
452
453#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
455#[serde(rename = "ext")]
456pub struct XlsxPositiveSize2D {
457 #[serde(rename = "@cx", default)]
458 pub cx: i64,
459 #[serde(rename = "@cy", default)]
460 pub cy: i64,
461}
462
463#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
465#[serde(rename = "sp")]
466pub struct XlsxSp {
467 #[serde(rename = "@macro", default)]
468 pub macro_name: Option<String>,
469 #[serde(rename = "@textlink", default)]
470 pub text_link: Option<String>,
471 #[serde(rename = "@fLocksText", default)]
472 pub f_locks_text: bool,
473 #[serde(rename = "@fPublished", default)]
474 pub f_published: Option<bool>,
475 #[serde(rename = "$value", default)]
476 pub content: XlsxInnerXml,
477}