docx_rust/formatting/
table_margin.rs

1use hard_xml::{XmlRead, XmlWrite};
2
3use crate::__setter;
4
5use super::margin::{BottomMargin, LeftMargin, RightMargin, TopMargin};
6
7#[derive(Debug, Default, XmlRead, XmlWrite, Clone)]
8#[cfg_attr(test, derive(PartialEq))]
9#[xml(tag = "w:tblCellMar")]
10pub struct TableMargins<'a> {
11    #[xml(child = "w:top")]
12    pub top: Option<TopMargin<'a>>,
13    #[xml(child = "w:left")]
14    pub left: Option<LeftMargin<'a>>,
15    #[xml(child = "w:bottom")]
16    pub bottom: Option<BottomMargin<'a>>,
17    #[xml(child = "w:right")]
18    pub right: Option<RightMargin<'a>>,
19}
20
21impl<'a> TableMargins<'a> {
22    __setter!(top: Option<TopMargin<'a>>);
23    __setter!(left: Option<LeftMargin<'a>>);
24    __setter!(right: Option<RightMargin<'a>>);
25    __setter!(bottom: Option<BottomMargin<'a>>);
26}
27
28// __xml_test_suites!(
29//     TableBorders,
30//     TableBorders::default(),
31//     r#"<w:tblBorders/>"#,
32//     TableBorders::default().top(TopBorder::default()),
33//     r#"<w:tblBorders><w:top/></w:tblBorders>"#,
34//     TableBorders::default().bottom(BottomBorder::default()),
35//     r#"<w:tblBorders><w:bottom/></w:tblBorders>"#,
36// );