Skip to main content

excelize_rs/xml/
shared_strings.rs

1//! Shared string table part (`xl/sharedStrings.xml`).
2//!
3//! Ported from Go `xmlSharedStrings.go`.
4
5use serde::{Deserialize, Serialize};
6
7use super::common::{XlsxPhoneticPr, XlsxPhoneticRun, XlsxR, XlsxT};
8
9/// Directly maps the `sst` element.
10#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
11#[serde(rename = "sst", rename_all = "PascalCase")]
12pub struct XlsxSst {
13    #[serde(rename = "@count", default)]
14    pub count: i64,
15    #[serde(rename = "@uniqueCount", default)]
16    pub unique_count: i64,
17    #[serde(rename = "si", default)]
18    pub si: Vec<XlsxSi>,
19}
20
21/// String item in the shared string table.
22#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
23pub struct XlsxSi {
24    #[serde(rename = "t", default)]
25    pub t: Option<XlsxT>,
26    #[serde(rename = "r", default)]
27    pub r: Vec<XlsxR>,
28    #[serde(rename = "rPh", default)]
29    pub r_ph: Vec<XlsxPhoneticRun>,
30    #[serde(rename = "phoneticPr", default)]
31    pub phonetic_pr: Option<XlsxPhoneticPr>,
32}