pub struct DomTreeSink { /* private fields */ }Expand description
TreeSink implementation that builds a DOM.
Uses UnsafeCell because html5ever’s TreeSink trait takes &self
but tree building inherently requires mutation.
§Safety
DomTreeSink is not Sync. It is owned by a single parsing
thread for the lifetime of the parse. html5ever calls TreeSink
methods serially from that thread — never concurrently, never
reentrantly. References handed out by helpers are dropped before
the next callback runs.
Implementations§
Source§impl DomTreeSink
impl DomTreeSink
Trait Implementations§
Source§impl Default for DomTreeSink
impl Default for DomTreeSink
Source§impl TreeSink for DomTreeSink
impl TreeSink for DomTreeSink
Source§type Handle = NodeId
type Handle = NodeId
Handle is a reference to a DOM node. The tree builder requires
that a Handle implements Clone to get another reference to
the same node.type ElemName<'a> = ExpandedName<'a>
Source§fn finish(self) -> Self::Output
fn finish(self) -> Self::Output
Consume this sink and return the overall result of parsing. Read more
Source§fn parse_error(&self, _msg: Cow<'static, str>)
fn parse_error(&self, _msg: Cow<'static, str>)
Signal a parse error.
Source§fn get_document(&self) -> NodeId
fn get_document(&self) -> NodeId
Get a handle to the
Document node.Source§fn elem_name<'a>(&'a self, target: &'a NodeId) -> ExpandedName<'a>
fn elem_name<'a>(&'a self, target: &'a NodeId) -> ExpandedName<'a>
What is the name of this element? Read more
Source§fn create_element(
&self,
name: H5QualName,
attrs: Vec<H5Attribute>,
_flags: ElementFlags,
) -> NodeId
fn create_element( &self, name: H5QualName, attrs: Vec<H5Attribute>, _flags: ElementFlags, ) -> NodeId
Create an element. Read more
Source§fn create_comment(&self, text: StrTendril) -> NodeId
fn create_comment(&self, text: StrTendril) -> NodeId
Create a comment node.
Source§fn create_pi(&self, target: StrTendril, data: StrTendril) -> NodeId
fn create_pi(&self, target: StrTendril, data: StrTendril) -> NodeId
Create a Processing Instruction node.
Source§fn append(&self, parent: &NodeId, child: NodeOrText<NodeId>)
fn append(&self, parent: &NodeId, child: NodeOrText<NodeId>)
Append a node as the last child of the given node. If this would
produce adjacent sibling text nodes, it should concatenate the text
instead. Read more
Source§fn append_based_on_parent_node(
&self,
element: &NodeId,
prev_element: &NodeId,
child: NodeOrText<NodeId>,
)
fn append_based_on_parent_node( &self, element: &NodeId, prev_element: &NodeId, child: NodeOrText<NodeId>, )
When the insertion point is decided by the existence of a parent node of the
element, we consider both possibilities and send the element which will be used
if a parent node exists, along with the element to be used if there isn’t one.
Source§fn append_doctype_to_document(
&self,
name: StrTendril,
public_id: StrTendril,
system_id: StrTendril,
)
fn append_doctype_to_document( &self, name: StrTendril, public_id: StrTendril, system_id: StrTendril, )
Append a
DOCTYPE element to the Document node.Source§fn get_template_contents(&self, target: &NodeId) -> NodeId
fn get_template_contents(&self, target: &NodeId) -> NodeId
Get a handle to a template’s template contents. The tree builder
promises this will never be called with something else than
a template element.
Source§fn set_quirks_mode(&self, mode: QuirksMode)
fn set_quirks_mode(&self, mode: QuirksMode)
Set the document’s quirks mode.
Source§fn append_before_sibling(&self, sibling: &NodeId, child: NodeOrText<NodeId>)
fn append_before_sibling(&self, sibling: &NodeId, child: NodeOrText<NodeId>)
Append a node as the sibling immediately before the given node. Read more
Source§fn add_attrs_if_missing(&self, target: &NodeId, attrs: Vec<H5Attribute>)
fn add_attrs_if_missing(&self, target: &NodeId, attrs: Vec<H5Attribute>)
Add each attribute to the given element, if no attribute with that name
already exists. The tree builder promises this will never be called
with something else than an element.
Source§fn remove_from_parent(&self, target: &NodeId)
fn remove_from_parent(&self, target: &NodeId)
Detach the given node from its parent.
Source§fn reparent_children(&self, node: &NodeId, new_parent: &NodeId)
fn reparent_children(&self, node: &NodeId, new_parent: &NodeId)
Remove all the children from node and append them to new_parent.
Source§fn mark_script_already_started(&self, _node: &Self::Handle)
fn mark_script_already_started(&self, _node: &Self::Handle)
Mark a HTML
<script> as “already started”.Source§fn pop(&self, _node: &Self::Handle)
fn pop(&self, _node: &Self::Handle)
Indicate that a node was popped off the stack of open elements.
Source§fn associate_with_form(
&self,
_target: &Self::Handle,
_form: &Self::Handle,
_nodes: (&Self::Handle, Option<&Self::Handle>),
)
fn associate_with_form( &self, _target: &Self::Handle, _form: &Self::Handle, _nodes: (&Self::Handle, Option<&Self::Handle>), )
Associate the given form-associatable element with the form element
Source§fn is_mathml_annotation_xml_integration_point(
&self,
_handle: &Self::Handle,
) -> bool
fn is_mathml_annotation_xml_integration_point( &self, _handle: &Self::Handle, ) -> bool
Returns true if the adjusted current node is an HTML integration point
and the token is a start tag.
Source§fn set_current_line(&self, _line_number: u64)
fn set_current_line(&self, _line_number: u64)
Called whenever the line number changes.
fn allow_declarative_shadow_roots( &self, _intended_parent: &Self::Handle, ) -> bool
Source§fn attach_declarative_shadow(
&self,
_location: &Self::Handle,
_template: &Self::Handle,
_attrs: &[Attribute],
) -> bool
fn attach_declarative_shadow( &self, _location: &Self::Handle, _template: &Self::Handle, _attrs: &[Attribute], ) -> bool
Attempt to attach a declarative shadow root at the given location. Read more
Source§fn maybe_clone_an_option_into_selectedcontent(&self, option: &Self::Handle)
fn maybe_clone_an_option_into_selectedcontent(&self, option: &Self::Handle)
Implements
maybe clone an option into selectedcontent. Read moreAuto Trait Implementations§
impl !Freeze for DomTreeSink
impl !RefUnwindSafe for DomTreeSink
impl !Sync for DomTreeSink
impl Send for DomTreeSink
impl Unpin for DomTreeSink
impl UnsafeUnpin for DomTreeSink
impl UnwindSafe for DomTreeSink
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more