Struct html5ever::tree_builder::TreeBuilder
source · pub struct TreeBuilder<Handle, Sink> {Show 17 fields
opts: TreeBuilderOpts,
pub sink: Sink,
mode: InsertionMode,
orig_mode: Option<InsertionMode>,
template_modes: Vec<InsertionMode>,
pending_table_text: Vec<(SplitStatus, StrTendril)>,
quirks_mode: QuirksMode,
doc_handle: Handle,
open_elems: Vec<Handle>,
active_formatting: Vec<FormatEntry<Handle>>,
head_elem: Option<Handle>,
form_elem: Option<Handle>,
frameset_ok: bool,
ignore_lf: bool,
foster_parenting: bool,
context_elem: Option<Handle>,
current_line: u64,
}
Expand description
The HTML tree builder.
Fields§
§opts: TreeBuilderOpts
Options controlling the behavior of the tree builder.
sink: Sink
Consumer of tree modifications.
mode: InsertionMode
Insertion mode.
orig_mode: Option<InsertionMode>
Original insertion mode, used by Text and InTableText modes.
template_modes: Vec<InsertionMode>
Stack of template insertion modes.
pending_table_text: Vec<(SplitStatus, StrTendril)>
Pending table character tokens.
quirks_mode: QuirksMode
Quirks mode as set by the parser. FIXME: can scripts etc. change this?
doc_handle: Handle
The document node, which is created by the sink.
open_elems: Vec<Handle>
Stack of open elements, most recently added at end.
active_formatting: Vec<FormatEntry<Handle>>
List of active formatting elements.
head_elem: Option<Handle>
Head element pointer.
form_elem: Option<Handle>
Form element pointer.
frameset_ok: bool
Frameset-ok flag.
ignore_lf: bool
Ignore a following U+000A LINE FEED?
foster_parenting: bool
Is foster parenting enabled?
context_elem: Option<Handle>
The context element for the fragment parsing algorithm.
current_line: u64
Track current line
Implementations§
source§impl<Handle, Sink> TreeBuilder<Handle, Sink>where
Handle: Clone,
Sink: TreeSink<Handle = Handle>,
impl<Handle, Sink> TreeBuilder<Handle, Sink>where Handle: Clone, Sink: TreeSink<Handle = Handle>,
sourcepub fn new(sink: Sink, opts: TreeBuilderOpts) -> TreeBuilder<Handle, Sink>
pub fn new(sink: Sink, opts: TreeBuilderOpts) -> TreeBuilder<Handle, Sink>
Create a new tree builder which sends tree modifications to a particular TreeSink
.
The tree builder is also a TokenSink
.
sourcepub fn new_for_fragment(
sink: Sink,
context_elem: Handle,
form_elem: Option<Handle>,
opts: TreeBuilderOpts
) -> TreeBuilder<Handle, Sink>
pub fn new_for_fragment( sink: Sink, context_elem: Handle, form_elem: Option<Handle>, opts: TreeBuilderOpts ) -> TreeBuilder<Handle, Sink>
Create a new tree builder which sends tree modifications to a particular TreeSink
.
This is for parsing fragments.
The tree builder is also a TokenSink
.
pub fn tokenizer_state_for_context_elem(&self) -> State
sourcepub fn trace_handles(&self, tracer: &dyn Tracer<Handle = Handle>)
pub fn trace_handles(&self, tracer: &dyn Tracer<Handle = Handle>)
Call the Tracer
’s trace_handle
method on every Handle
in the tree builder’s
internal state. This is intended to support garbage-collected DOMs.
fn dump_state(&self, label: String)
fn debug_step(&self, mode: InsertionMode, token: &Token)
fn process_to_completion(&mut self, token: Token) -> TokenSinkResult<Handle>
sourcepub fn is_fragment(&self) -> bool
pub fn is_fragment(&self) -> bool
Are we parsing a HTML fragment?
sourcefn appropriate_place_for_insertion(
&mut self,
override_target: Option<Handle>
) -> InsertionPoint<Handle>
fn appropriate_place_for_insertion( &mut self, override_target: Option<Handle> ) -> InsertionPoint<Handle>
https://html.spec.whatwg.org/multipage/#appropriate-place-for-inserting-a-node