minidom: deduplicate from_reader methods
skip-changelog: internal stuff Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
parent
db0ce5859b
commit
2678ac1b97
1 changed files with 11 additions and 13 deletions
|
|
@ -339,9 +339,10 @@ impl Element {
|
||||||
namespace.into().compare(self.namespace.as_ref())
|
namespace.into().compare(self.namespace.as_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Parse a document from a `io::BufRead`.
|
fn from_reader_inner<R: io::BufRead>(
|
||||||
pub fn from_reader<R: io::BufRead>(reader: R) -> Result<Element> {
|
mut tree_builder: TreeBuilder,
|
||||||
let mut tree_builder = TreeBuilder::new();
|
reader: R,
|
||||||
|
) -> Result<Element> {
|
||||||
let mut driver = RawReader::new(reader);
|
let mut driver = RawReader::new(reader);
|
||||||
while let Some(event) = driver.read()? {
|
while let Some(event) = driver.read()? {
|
||||||
tree_builder.process_event(event)?;
|
tree_builder.process_event(event)?;
|
||||||
|
|
@ -353,6 +354,11 @@ impl Element {
|
||||||
Err(Error::EndOfDocument)
|
Err(Error::EndOfDocument)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Parse a document from a `io::BufRead`.
|
||||||
|
pub fn from_reader<R: io::BufRead>(reader: R) -> Result<Element> {
|
||||||
|
Element::from_reader_inner(TreeBuilder::new(), reader)
|
||||||
|
}
|
||||||
|
|
||||||
/// Parse a document from a `io::BufRead`, allowing Prefixes to be specified. Useful to provide
|
/// Parse a document from a `io::BufRead`, allowing Prefixes to be specified. Useful to provide
|
||||||
/// knowledge of namespaces that would have been declared on parent elements not present in the
|
/// knowledge of namespaces that would have been declared on parent elements not present in the
|
||||||
/// reader.
|
/// reader.
|
||||||
|
|
@ -360,16 +366,8 @@ impl Element {
|
||||||
reader: R,
|
reader: R,
|
||||||
prefixes: P,
|
prefixes: P,
|
||||||
) -> Result<Element> {
|
) -> Result<Element> {
|
||||||
let mut tree_builder = TreeBuilder::new().with_prefixes_stack([prefixes.into()].into());
|
let tree_builder = TreeBuilder::new().with_prefixes_stack([prefixes.into()].into());
|
||||||
let mut driver = RawReader::new(reader);
|
Element::from_reader_inner(tree_builder, reader)
|
||||||
while let Some(event) = driver.read()? {
|
|
||||||
tree_builder.process_event(event)?;
|
|
||||||
|
|
||||||
if let Some(root) = tree_builder.root.take() {
|
|
||||||
return Ok(root);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(Error::EndOfDocument)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Output a document to a `io::Writer`.
|
/// Output a document to a `io::Writer`.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue