accessibility_scraper/html/
serializable.rs

1use 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}