docx_reader/documents/elements/
text.rs

1use 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}