document_tree/
lib.rs
1#![warn(clippy::pedantic)]
2#![recursion_limit = "256"]
3
4#[macro_use]
10mod macro_util;
11
12pub mod attribute_types;
13pub mod element_categories;
14pub mod elements;
15pub mod extra_attributes;
16pub mod url;
17
18pub use self::element_categories::HasChildren;
19pub use self::elements::*; pub use self::extra_attributes::ExtraAttributes;
21
22#[cfg(test)]
23mod tests {
24 use super::*;
25 use std::default::Default;
26
27 #[test]
28 fn imperative() {
29 let mut doc = Document::default();
30 let mut title = Title::default();
31 let url = "https://example.com/image.jpg".parse().unwrap();
32 let image = ImageInline::with_extra(extra_attributes::ImageInline::new(url));
33 title.append_child("Hi");
34 title.append_child(image);
35 doc.append_child(title);
36
37 println!("{doc:?}");
38 }
39
40 #[test]
41 fn descriptive() {
42 let doc = Document::with_children(vec![
43 Title::with_children(vec![
44 "Hi".into(),
45 ImageInline::with_extra(extra_attributes::ImageInline::new(
46 "https://example.com/image.jpg".parse().unwrap(),
47 ))
48 .into(),
49 ])
50 .into(),
51 ]);
52
53 println!("{doc:?}");
54 }
55}