docx_rust/formatting/
table_justification.rs

1use hard_xml::{XmlRead, XmlWrite};
2
3use crate::{__string_enum, __xml_test_suites};
4
5/// Table Justification
6///
7/// ```rust
8/// use docx_rust::formatting::*;
9///
10/// let jc = TableJustification::from(TableJustificationVal::Start);
11/// ```
12#[derive(Debug, Default, XmlRead, XmlWrite, Clone)]
13#[cfg_attr(test, derive(PartialEq))]
14#[xml(tag = "w:jc")]
15pub struct TableJustification {
16    #[xml(attr = "w:val")]
17    pub value: Option<TableJustificationVal>,
18}
19
20impl From<TableJustificationVal> for TableJustification {
21    fn from(val: TableJustificationVal) -> Self {
22        TableJustification { value: Some(val) }
23    }
24}
25
26#[derive(Debug, Clone)]
27#[cfg_attr(test, derive(PartialEq))]
28pub enum TableJustificationVal {
29    Start,
30    End,
31    Center,
32    Left,
33    Right,
34}
35
36__string_enum! {
37    TableJustificationVal {
38        Start = "start",
39        End = "end",
40        Center = "center",
41        Left = "left",
42        Right = "right",
43    }
44}
45
46__xml_test_suites!(
47    TableJustification,
48    TableJustification::default(),
49    "<w:jc/>",
50    TableJustification::from(TableJustificationVal::Start),
51    r#"<w:jc w:val="start"/>"#,
52);