add ElementBuilder::text
This commit is contained in:
parent
41e1cf2654
commit
e0b35477cd
1 changed files with 14 additions and 1 deletions
15
src/lib.rs
15
src/lib.rs
|
|
@ -76,6 +76,7 @@ impl Element {
|
||||||
pub fn builder<S: Into<String>>(name: S) -> ElementBuilder {
|
pub fn builder<S: Into<String>>(name: S) -> ElementBuilder {
|
||||||
ElementBuilder {
|
ElementBuilder {
|
||||||
name: name.into(),
|
name: name.into(),
|
||||||
|
text: None,
|
||||||
namespace: None,
|
namespace: None,
|
||||||
attributes: Vec::new(),
|
attributes: Vec::new(),
|
||||||
}
|
}
|
||||||
|
|
@ -297,6 +298,7 @@ impl<'a> Iterator for ChildrenMut<'a> {
|
||||||
|
|
||||||
pub struct ElementBuilder {
|
pub struct ElementBuilder {
|
||||||
name: String,
|
name: String,
|
||||||
|
text: Option<String>,
|
||||||
namespace: Option<String>,
|
namespace: Option<String>,
|
||||||
attributes: Vec<Attribute>,
|
attributes: Vec<Attribute>,
|
||||||
}
|
}
|
||||||
|
|
@ -312,8 +314,17 @@ impl ElementBuilder {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn text<S: Into<String>>(mut self, text: S) -> ElementBuilder {
|
||||||
|
self.text = Some(text.into());
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn build(self) -> Element {
|
pub fn build(self) -> Element {
|
||||||
Element::new(self.name, self.namespace, self.attributes)
|
let mut elem = Element::new(self.name, self.namespace, self.attributes);
|
||||||
|
if let Some(text) = self.text {
|
||||||
|
elem.append_text_node(text);
|
||||||
|
}
|
||||||
|
elem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -368,11 +379,13 @@ mod tests {
|
||||||
let elem = Element::builder("a")
|
let elem = Element::builder("a")
|
||||||
.ns("b")
|
.ns("b")
|
||||||
.attr("c", "d")
|
.attr("c", "d")
|
||||||
|
.text("e")
|
||||||
.build();
|
.build();
|
||||||
assert_eq!(elem.name(), "a");
|
assert_eq!(elem.name(), "a");
|
||||||
assert_eq!(elem.ns(), Some("b"));
|
assert_eq!(elem.ns(), Some("b"));
|
||||||
assert_eq!(elem.attr("c"), Some("d"));
|
assert_eq!(elem.attr("c"), Some("d"));
|
||||||
assert_eq!(elem.attr("x"), None);
|
assert_eq!(elem.attr("x"), None);
|
||||||
|
assert_eq!(elem.text(), "e");
|
||||||
assert!(elem.is("a", "b"));
|
assert!(elem.is("a", "b"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue