Struct ElementBuilder

Source
pub struct ElementBuilder { /* private fields */ }
Expand description

An Element Builder, building Elements from Events as produced by Parser

use xml::{Parser, ElementBuilder};

let mut parser = Parser::new();
let mut builder = ElementBuilder::new();

parser.feed_str("<example/>");
for result in parser.filter_map(|event| builder.handle_event(event)) {
    println!("{}", result.unwrap());
}

Implementations§

Source§

impl ElementBuilder

Source

pub fn new() -> ElementBuilder

Returns a new ElementBuilder

Examples found in repository?
examples/roundtrip.rs (line 33)
14fn main() {
15    let mut args = std::env::args();
16    let name = args.next().unwrap_or_else(|| "roundtrip".to_string());
17    let path = args.next();
18    let path = if let Some(ref path) = path {
19        path
20    } else {
21        println!("Usage: {} <file>", name);
22        return;
23    };
24    let mut rdr = match File::open(path) {
25        Ok(file) => file,
26        Err(err) => {
27            println!("Couldn't open file: {}", err);
28            std::process::exit(1);
29        }
30    };
31
32    let mut p = xml::Parser::new();
33    let mut e = xml::ElementBuilder::new();
34
35    let mut string = String::new();
36    if let Err(err) = rdr.read_to_string(&mut string) {
37        println!("Reading failed: {}", err);
38        std::process::exit(1);
39    };
40
41    p.feed_str(&string);
42    for event in p.filter_map(|x| e.handle_event(x)) {
43        // println!("{:?}", event);
44        match event {
45            Ok(e) => println!("{}", e),
46            Err(e) => println!("{}", e),
47        }
48    }
49}
Source

pub fn define_prefix(&mut self, prefix: String, ns: String)

Bind a prefix to a namespace

Source

pub fn set_default_ns(&mut self, ns: String)

Set the default namespace

Source

pub fn handle_event( &mut self, e: Result<Event, ParserError>, ) -> Option<Result<Element, BuilderError>>

Let the builder process an Event to ultimately build an Element.

While no root element has been finished None is returned. Once sufficient data has been received an Element is returned as Some(Ok(elem)). Upon Error Some(Err("message")) is returned.

Examples found in repository?
examples/roundtrip.rs (line 42)
14fn main() {
15    let mut args = std::env::args();
16    let name = args.next().unwrap_or_else(|| "roundtrip".to_string());
17    let path = args.next();
18    let path = if let Some(ref path) = path {
19        path
20    } else {
21        println!("Usage: {} <file>", name);
22        return;
23    };
24    let mut rdr = match File::open(path) {
25        Ok(file) => file,
26        Err(err) => {
27            println!("Couldn't open file: {}", err);
28            std::process::exit(1);
29        }
30    };
31
32    let mut p = xml::Parser::new();
33    let mut e = xml::ElementBuilder::new();
34
35    let mut string = String::new();
36    if let Err(err) = rdr.read_to_string(&mut string) {
37        println!("Reading failed: {}", err);
38        std::process::exit(1);
39    };
40
41    p.feed_str(&string);
42    for event in p.filter_map(|x| e.handle_event(x)) {
43        // println!("{:?}", event);
44        match event {
45            Ok(e) => println!("{}", e),
46            Err(e) => println!("{}", e),
47        }
48    }
49}

Auto Trait Implementations§

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>,

Source§

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>,

Source§

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.