Struct xml5ever::tree_builder::XmlTreeBuilder
source · pub struct XmlTreeBuilder<Handle, Sink> {
_opts: XmlTreeBuilderOpts,
pub sink: Sink,
doc_handle: Handle,
next_tokenizer_state: Option<XmlState>,
open_elems: Vec<Handle>,
curr_elem: Option<Handle>,
namespace_stack: NamespaceMapStack,
current_namespace: NamespaceMap,
present_attrs: HashSet<(Namespace, LocalName)>,
phase: XmlPhase,
}
Expand description
The XML tree builder.
Fields§
§_opts: XmlTreeBuilderOpts
Configuration options for XmlTreeBuilder
sink: Sink
Consumer of tree modifications.
doc_handle: Handle
The document node, which is created by the sink.
next_tokenizer_state: Option<XmlState>
Next state change for the tokenizer, if any.
open_elems: Vec<Handle>
Stack of open elements, most recently added at end.
curr_elem: Option<Handle>
Current element pointer.
namespace_stack: NamespaceMapStack
Stack of namespace identifiers and namespaces.
current_namespace: NamespaceMap
Current namespace identifier
present_attrs: HashSet<(Namespace, LocalName)>
List of already present namespace local name attribute pairs.
phase: XmlPhase
Current tree builder phase.
Implementations§
source§impl<Handle, Sink> XmlTreeBuilder<Handle, Sink>where
Handle: Clone,
Sink: TreeSink<Handle = Handle>,
impl<Handle, Sink> XmlTreeBuilder<Handle, Sink>where Handle: Clone, Sink: TreeSink<Handle = Handle>,
sourcepub fn new(sink: Sink, opts: XmlTreeBuilderOpts) -> XmlTreeBuilder<Handle, Sink>
pub fn new(sink: Sink, opts: XmlTreeBuilderOpts) -> XmlTreeBuilder<Handle, Sink>
Create a new tree builder which sends tree modifications to a particular TreeSink
.
The tree builder is also a TokenSink
.
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: XmlPhase, token: &Token)
fn declare_ns(&mut self, attr: &mut Attribute)
fn find_uri( &self, prefix: &Option<Prefix> ) -> Result<Option<Namespace>, Cow<'static, str>>
fn bind_qname(&mut self, name: &mut QualName)
fn bind_attr_qname(&mut self, name: &mut QualName) -> bool
fn check_duplicate_attr(&mut self, name: &QualName) -> bool
fn process_namespaces(&mut self, tag: &mut Tag)
fn process_to_completion(&mut self, token: Token)
Trait Implementations§
source§impl<Handle, Sink> TokenSink for XmlTreeBuilder<Handle, Sink>where
Handle: Clone,
Sink: TreeSink<Handle = Handle>,
impl<Handle, Sink> TokenSink for XmlTreeBuilder<Handle, Sink>where Handle: Clone, Sink: TreeSink<Handle = Handle>,
source§fn process_token(&mut self, token: Token)
fn process_token(&mut self, token: Token)
Process a token.
source§fn query_state_change(&mut self) -> Option<XmlState>
fn query_state_change(&mut self) -> Option<XmlState>
The tokenizer will call this after emitting any start tag.
This allows the tree builder to change the tokenizer’s state.
By default no state changes occur.
Auto Trait Implementations§
impl<Handle, Sink> RefUnwindSafe for XmlTreeBuilder<Handle, Sink>where Handle: RefUnwindSafe, Sink: RefUnwindSafe,
impl<Handle, Sink> Send for XmlTreeBuilder<Handle, Sink>where Handle: Send, Sink: Send,
impl<Handle, Sink> Sync for XmlTreeBuilder<Handle, Sink>where Handle: Sync, Sink: Sync,
impl<Handle, Sink> Unpin for XmlTreeBuilder<Handle, Sink>where Handle: Unpin, Sink: Unpin,
impl<Handle, Sink> UnwindSafe for XmlTreeBuilder<Handle, Sink>where Handle: UnwindSafe, Sink: UnwindSafe,
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