accessibility_scraper/html/
serializable.rs1use std::io::Error;
2
3use fast_html5ever::serialize::{Serialize, Serializer, TraversalScope};
4
5use crate::Html;
6
7impl Serialize for Html {
8 fn serialize<S: Serializer>(
9 &self,
10 serializer: &mut S,
11 traversal_scope: TraversalScope,
12 ) -> Result<(), Error> {
13 crate::node::serializable::serialize(self.tree.root(), serializer, traversal_scope)
14 }
15}
16
17#[cfg(test)]
18mod tests {
19 use crate::Html;
20
21 #[test]
22 #[cfg(not(feature = "tokio"))]
23 fn test_serialize() {
24 let src = r#"<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></head><body><p>Hello world!</p></body></html>"#;
25 let html = Html::parse_document(src);
26 assert_eq!(html.html(), src);
27 }
28
29 #[cfg(feature = "tokio")]
30 #[tokio::test]
31 async fn test_serialize() {
32 let src = r#"<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></head><body><p>Hello world!</p></body></html>"#;
33 let html = Html::parse_document(src).await;
34 assert_eq!(html.html(), src);
35 }
36}