docx_rs/documents/elements/
indent_level.rs1use crate::documents::BuildXML;
2use crate::xml_builder::*;
3use std::io::Write;
4
5#[derive(Debug, Clone, PartialEq)]
6pub struct IndentLevel {
7 pub val: usize,
8}
9
10impl IndentLevel {
11 pub fn new(val: usize) -> IndentLevel {
12 IndentLevel { val }
13 }
14}
15
16impl BuildXML for IndentLevel {
17 fn build_to<W: Write>(
18 &self,
19 stream: xml::writer::EventWriter<W>,
20 ) -> xml::writer::Result<xml::writer::EventWriter<W>> {
21 XMLBuilder::from(stream)
22 .indent_level(self.val)?
23 .into_inner()
24 }
25}
26
27#[cfg(test)]
28mod tests {
29
30 use super::*;
31 #[cfg(test)]
32 use pretty_assertions::assert_eq;
33 use std::str;
34
35 #[test]
36 fn test_indent_level() {
37 let c = IndentLevel::new(20);
38 let b = c.build();
39 assert_eq!(str::from_utf8(&b).unwrap(), r#"<w:ilvl w:val="20" />"#);
40 }
41}