optionally implement minidom::IntoAttributeValue
This commit is contained in:
parent
3882a3ba96
commit
5bd0feb178
2 changed files with 22 additions and 0 deletions
|
@ -14,3 +14,4 @@ license = "LGPL-3.0+"
|
|||
gitlab = { repository = "lumi/jid-rs" }
|
||||
|
||||
[dependencies]
|
||||
minidom = { version = "0.4.4", optional = true }
|
||||
|
|
21
src/lib.rs
21
src/lib.rs
|
@ -359,6 +359,19 @@ impl Jid {
|
|||
|
||||
}
|
||||
|
||||
#[cfg(feature = "minidom")]
|
||||
extern crate minidom;
|
||||
|
||||
#[cfg(feature = "minidom")]
|
||||
use minidom::IntoAttributeValue;
|
||||
|
||||
#[cfg(feature = "minidom")]
|
||||
impl IntoAttributeValue for Jid {
|
||||
fn into_attribute_value(self) -> Option<String> {
|
||||
Some(String::from(self))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
@ -380,4 +393,12 @@ mod tests {
|
|||
fn serialise() {
|
||||
assert_eq!(String::from(Jid::full("a", "b", "c")), String::from("a@b/c"));
|
||||
}
|
||||
|
||||
#[cfg(feature = "minidom")]
|
||||
#[test]
|
||||
fn minidom() {
|
||||
let elem: minidom::Element = "<message from='a@b/c'/>".parse().unwrap();
|
||||
let to: Jid = elem.attr("from").unwrap().parse().unwrap();
|
||||
assert_eq!(to, Jid::full("a", "b", "c"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue