1use crate::{BaseDocument, Document, DocumentConfig, DocumentMutator, PlainDocument};
2use blitz_traits::node_id::NodeId;
3
4pub trait HtmlParserProvider {
5 fn parse_inner_html<'m, 'doc>(
6 &self,
7 mutr: &'m mut DocumentMutator<'doc>,
8 element_id: NodeId,
9 html: &str,
10 );
11
12 fn parse_fragment<'m, 'doc>(
18 &self,
19 mutr: &'m mut DocumentMutator<'doc>,
20 element_id: NodeId,
21 html: &str,
22 allow_declarative_shadow_roots: bool,
23 ) {
24 let _ = allow_declarative_shadow_roots;
25 self.parse_inner_html(mutr, element_id, html);
26 }
27
28 fn parse_document(&self, html: &str, config: DocumentConfig) -> Box<dyn Document> {
32 let _ = html;
33 Box::new(PlainDocument(BaseDocument::new(config)))
34 }
35}
36
37pub struct DummyHtmlParserProvider;
38impl HtmlParserProvider for DummyHtmlParserProvider {
39 fn parse_inner_html<'m, 'doc>(
40 &self,
41 mutr: &'m mut DocumentMutator<'doc>,
42 element_id: NodeId,
43 html: &str,
44 ) {
45 let _ = mutr;
46 let _ = element_id;
47 let _ = html;
48 }
54}