docx_rust/formatting/
dstrike.rs

1use hard_xml::{XmlRead, XmlWrite};
2
3use crate::__xml_test_suites;
4
5/// Double Strike
6///
7/// ```rust
8/// use docx_rust::formatting::*;
9///
10/// let dstrike = Dstrike::from(false);
11/// let dstrike = Dstrike::from(true);
12/// ```
13#[derive(Debug, Default, XmlRead, XmlWrite, Clone)]
14#[cfg_attr(test, derive(PartialEq))]
15#[xml(tag = "w:dstrike")]
16pub struct Dstrike {
17    #[xml(attr = "w:val")]
18    pub value: Option<bool>,
19}
20
21#[derive(Debug, Default, XmlRead, XmlWrite, Clone)]
22#[cfg_attr(test, derive(PartialEq))]
23#[xml(tag = "w:position")]
24pub struct Position {
25    #[xml(attr = "w:val")]
26    pub value: Option<isize>,
27}
28
29impl<T: Into<Option<bool>>> From<T> for Dstrike {
30    fn from(val: T) -> Self {
31        Dstrike { value: val.into() }
32    }
33}
34
35__xml_test_suites!(
36    Dstrike,
37    Dstrike::default(),
38    r#"<w:dstrike/>"#,
39    Dstrike::from(false),
40    r#"<w:dstrike w:val="false"/>"#,
41    Dstrike::from(true),
42    r#"<w:dstrike w:val="true"/>"#,
43);