1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use strong_xml::{XmlRead, XmlWrite};

use crate::{
    __setter, __xml_test_suites,
    formatting::{BottomBorder, TopBorder},
};

#[derive(Debug, Default, XmlRead, XmlWrite, Clone)]
#[cfg_attr(test, derive(PartialEq))]
#[xml(tag = "w:tblBorders")]
pub struct TableBorders<'a> {
    #[xml(child = "w:top")]
    pub top: Option<TopBorder<'a>>,
    #[xml(child = "w:bottom")]
    pub bottom: Option<BottomBorder<'a>>,
}

impl<'a> TableBorders<'a> {
    __setter!(top: Option<TopBorder<'a>>);
    __setter!(bottom: Option<BottomBorder<'a>>);
}

__xml_test_suites!(
    TableBorders,
    TableBorders::default(),
    r#"<w:tblBorders/>"#,
    TableBorders::default().top(TopBorder::default()),
    r#"<w:tblBorders><w:top/></w:tblBorders>"#,
    TableBorders::default().bottom(BottomBorder::default()),
    r#"<w:tblBorders><w:bottom/></w:tblBorders>"#,
);