excelize_rs/xml/
shared_strings.rs1use serde::{Deserialize, Serialize};
6
7use super::common::{XlsxPhoneticPr, XlsxPhoneticRun, XlsxR, XlsxT};
8
9fn default_xmlns() -> String {
10 crate::constants::NAMESPACE_SPREADSHEET.to_string()
11}
12
13#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
15#[serde(rename = "sst", rename_all = "PascalCase")]
16pub struct XlsxSst {
17 #[serde(rename = "@xmlns", default = "default_xmlns")]
18 pub xmlns: String,
19 #[serde(rename = "@count", default)]
20 pub count: i64,
21 #[serde(rename = "@uniqueCount", default)]
22 pub unique_count: i64,
23 #[serde(rename = "si", default)]
24 pub si: Vec<XlsxSi>,
25}
26
27impl Default for XlsxSst {
28 fn default() -> Self {
29 Self {
30 xmlns: default_xmlns(),
31 count: 0,
32 unique_count: 0,
33 si: Vec::new(),
34 }
35 }
36}
37
38#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
40pub struct XlsxSi {
41 #[serde(rename = "t", default, skip_serializing_if = "Option::is_none")]
42 pub t: Option<XlsxT>,
43 #[serde(rename = "r", default)]
44 pub r: Vec<XlsxR>,
45 #[serde(rename = "rPh", default)]
46 pub r_ph: Vec<XlsxPhoneticRun>,
47 #[serde(rename = "phoneticPr", default, skip_serializing_if = "Option::is_none")]
48 pub phonetic_pr: Option<XlsxPhoneticPr>,
49}