docx_reader/documents/elements/
line_spacing.rs

1use crate::line_spacing_type::LineSpacingType;
2use serde::*;
3
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
5#[serde(rename_all = "camelCase")]
6pub struct LineSpacing {
7	#[serde(skip_serializing_if = "Option::is_none")]
8	line_rule: Option<LineSpacingType>,
9	#[serde(skip_serializing_if = "Option::is_none")]
10	before: Option<u32>,
11	#[serde(skip_serializing_if = "Option::is_none")]
12	after: Option<u32>,
13	#[serde(skip_serializing_if = "Option::is_none")]
14	before_lines: Option<u32>,
15	#[serde(skip_serializing_if = "Option::is_none")]
16	after_lines: Option<u32>,
17	#[serde(skip_serializing_if = "Option::is_none")]
18	line: Option<i32>,
19}
20
21impl LineSpacing {
22	pub fn new() -> Self {
23		Self::default()
24	}
25
26	pub fn line_rule(mut self, t: LineSpacingType) -> Self {
27		self.line_rule = Some(t);
28		self
29	}
30
31	pub fn before(mut self, before: u32) -> Self {
32		self.before = Some(before);
33		self
34	}
35
36	pub fn after(mut self, after: u32) -> Self {
37		self.after = Some(after);
38		self
39	}
40
41	pub fn before_lines(mut self, before: u32) -> Self {
42		self.before_lines = Some(before);
43		self
44	}
45
46	pub fn after_lines(mut self, after: u32) -> Self {
47		self.after_lines = Some(after);
48		self
49	}
50
51	pub fn line(mut self, line: i32) -> Self {
52		self.line = Some(line as i32);
53		self
54	}
55}