docx_reader/documents/elements/
line_spacing.rs1use 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}