docx_reader/documents/elements/
text.rs1use serde::ser::{Serialize, SerializeStruct, Serializer};
2use serde::Deserialize;
3
4#[derive(Debug, Clone, Deserialize, PartialEq)]
5#[serde(rename_all = "camelCase")]
6pub struct Text {
7 pub text: String,
8 pub preserve_space: bool,
9}
10
11impl Text {
12 pub fn new(text: impl Into<String>) -> Text {
13 Text {
14 text: text.into(),
15 preserve_space: true,
16 }
17 }
18
19 pub(crate) fn without_escape(text: impl Into<String>) -> Text {
20 Text {
21 text: text.into(),
22 preserve_space: true,
23 }
24 }
25}
26
27impl Serialize for Text {
28 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
29 where
30 S: Serializer,
31 {
32 let mut t = serializer.serialize_struct("Text", 2)?;
33 t.serialize_field("preserveSpace", &self.preserve_space)?;
34 t.serialize_field("text", &self.text)?;
35 t.end()
36 }
37}