Struct html5ever::tree_builder::TreeBuilder

source ·
pub struct TreeBuilder<Handle, Sink> {
Show 17 fields opts: TreeBuilderOpts, pub sink: Sink, mode: Cell<InsertionMode>, orig_mode: Cell<Option<InsertionMode>>, template_modes: RefCell<Vec<InsertionMode>>, pending_table_text: RefCell<Vec<(SplitStatus, StrTendril)>>, quirks_mode: Cell<QuirksMode>, doc_handle: Handle, open_elems: RefCell<Vec<Handle>>, active_formatting: RefCell<Vec<FormatEntry<Handle>>>, head_elem: RefCell<Option<Handle>>, form_elem: RefCell<Option<Handle>>, frameset_ok: Cell<bool>, ignore_lf: Cell<bool>, foster_parenting: Cell<bool>, context_elem: RefCell<Option<Handle>>, current_line: Cell<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: Cell<InsertionMode>

Insertion mode.

§orig_mode: Cell<Option<InsertionMode>>

Original insertion mode, used by Text and InTableText modes.

§template_modes: RefCell<Vec<InsertionMode>>

Stack of template insertion modes.

§pending_table_text: RefCell<Vec<(SplitStatus, StrTendril)>>

Pending table character tokens.

§quirks_mode: Cell<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: RefCell<Vec<Handle>>

Stack of open elements, most recently added at end.

§active_formatting: RefCell<Vec<FormatEntry<Handle>>>

List of active formatting elements.

§head_elem: RefCell<Option<Handle>>

Head element pointer.

§form_elem: RefCell<Option<Handle>>

Form element pointer.

§frameset_ok: Cell<bool>

Frameset-ok flag.

§ignore_lf: Cell<bool>

Ignore a following U+000A LINE FEED?

§foster_parenting: Cell<bool>

Is foster parenting enabled?

§context_elem: RefCell<Option<Handle>>

The context element for the fragment parsing algorithm.

§current_line: Cell<u64>

Track current line

Implementations§

source§

impl<Handle, Sink> TreeBuilder<Handle, Sink>
where Handle: Clone, Sink: TreeSink<Handle = Handle>,

source

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.

source

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.

source

pub fn tokenizer_state_for_context_elem(&self) -> State

source

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.

source

fn dump_state(&self, label: String)

source

fn debug_step(&self, mode: InsertionMode, token: &Token)

source

fn process_to_completion(&self, token: Token) -> TokenSinkResult<Handle>

source

pub fn is_fragment(&self) -> bool

Are we parsing a HTML fragment?

source

fn appropriate_place_for_insertion( &self, override_target: Option<Handle>, ) -> InsertionPoint<Handle>

https://html.spec.whatwg.org/multipage/#appropriate-place-for-inserting-a-node

source

fn insert_at( &self, insertion_point: InsertionPoint<Handle>, child: NodeOrText<Handle>, )

Trait Implementations§

source§

impl<Handle, Sink> TokenSink for TreeBuilder<Handle, Sink>
where Handle: Clone, Sink: TreeSink<Handle = Handle>,

§

type Handle = Handle

source§

fn process_token( &self, token: Token, line_number: u64, ) -> TokenSinkResult<Handle>

Process a token.
source§

fn end(&self)

source§

fn adjusted_current_node_present_but_not_in_html_namespace(&self) -> bool

Used in the markup declaration open state. By default, this always returns false and thus all CDATA sections are tokenized as bogus comments. https://html.spec.whatwg.org/multipage/#markup-declaration-open-state

Auto Trait Implementations§

§

impl<Handle, Sink> !Freeze for TreeBuilder<Handle, Sink>

§

impl<Handle, Sink> !RefUnwindSafe for TreeBuilder<Handle, Sink>

§

impl<Handle, Sink> !Send for TreeBuilder<Handle, Sink>

§

impl<Handle, Sink> !Sync for TreeBuilder<Handle, Sink>

§

impl<Handle, Sink> Unpin for TreeBuilder<Handle, Sink>
where Sink: Unpin, Handle: Unpin,

§

impl<Handle, Sink> UnwindSafe for TreeBuilder<Handle, Sink>
where Sink: UnwindSafe, Handle: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.