mirror of
https://gitlab.com/xmpp-rs/xmpp-rs.git
synced 2024-07-12 22:21:53 +00:00
mood: Add support for the <text/> element.
This commit is contained in:
parent
3d495ccf41
commit
90063e5433
2 changed files with 15 additions and 2 deletions
|
@ -314,7 +314,8 @@ macro_rules! generate_id {
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! generate_elem_id {
|
macro_rules! generate_elem_id {
|
||||||
($elem:ident, $name:tt, $ns:ident) => (
|
($(#[$meta:meta])* $elem:ident, $name:tt, $ns:ident) => (
|
||||||
|
$(#[$meta])*
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
pub struct $elem(pub String);
|
pub struct $elem(pub String);
|
||||||
impl ::std::str::FromStr for $elem {
|
impl ::std::str::FromStr for $elem {
|
||||||
|
@ -391,7 +392,7 @@ macro_rules! generate_element_with_text {
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! generate_element_with_children {
|
macro_rules! generate_element_with_children {
|
||||||
($(#[$meta:meta])* $elem:ident, $name:tt, $ns:ident, attributes: [$($(#[$attr_meta:meta])* $attr:ident: $attr_type:ty = $attr_name:tt => $attr_action:tt),+], children: [$($(#[$child_meta:meta])* $child_ident:ident: Vec<$child_type:ty> = ($child_name:tt, $child_ns:ident) => $child_constructor:ident),+]) => (
|
($(#[$meta:meta])* $elem:ident, $name:tt, $ns:ident, attributes: [$($(#[$attr_meta:meta])* $attr:ident: $attr_type:ty = $attr_name:tt => $attr_action:tt),*], children: [$($(#[$child_meta:meta])* $child_ident:ident: Vec<$child_type:ty> = ($child_name:tt, $child_ns:ident) => $child_constructor:ident),+]) => (
|
||||||
$(#[$meta])*
|
$(#[$meta])*
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct $elem {
|
pub struct $elem {
|
||||||
|
|
12
src/mood.rs
12
src/mood.rs
|
@ -263,6 +263,11 @@ generate_element_enum!(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
generate_elem_id!(
|
||||||
|
/// Free-form text description of the mood.
|
||||||
|
Text, "text", MOOD
|
||||||
|
);
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
@ -275,4 +280,11 @@ mod tests {
|
||||||
let mood = MoodEnum::try_from(elem).unwrap();
|
let mood = MoodEnum::try_from(elem).unwrap();
|
||||||
assert_eq!(mood, MoodEnum::Happy);
|
assert_eq!(mood, MoodEnum::Happy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_text() {
|
||||||
|
let elem: Element = "<text xmlns='http://jabber.org/protocol/mood'>Yay!</text>".parse().unwrap();
|
||||||
|
let text = Text::try_from(elem).unwrap();
|
||||||
|
assert_eq!(text.0, String::from("Yay!"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue