parsers: port version to derive macros
We can *finally* do it!
This commit is contained in:
parent
c7c180feb6
commit
f466b18622
1 changed files with 17 additions and 15 deletions
|
@ -19,23 +19,25 @@ pub struct VersionQuery;
|
||||||
|
|
||||||
impl IqGetPayload for VersionQuery {}
|
impl IqGetPayload for VersionQuery {}
|
||||||
|
|
||||||
generate_element!(
|
|
||||||
/// Represents the answer about the software version we are using.
|
/// Represents the answer about the software version we are using.
|
||||||
///
|
///
|
||||||
/// It should only be used in an `<iq type='result'/>`, as it can only
|
/// It should only be used in an `<iq type='result'/>`, as it can only
|
||||||
/// represent the result, and not a request.
|
/// represent the result, and not a request.
|
||||||
VersionResult, "query", VERSION,
|
#[derive(FromXml, AsXml, PartialEq, Debug, Clone)]
|
||||||
children: [
|
#[xml(namespace = ns::VERSION, name = "query")]
|
||||||
|
pub struct VersionResult {
|
||||||
/// The name of this client.
|
/// The name of this client.
|
||||||
name: Required<String> = ("name", VERSION) => String,
|
#[xml(extract(fields(text)))]
|
||||||
|
pub name: String,
|
||||||
|
|
||||||
/// The version of this client.
|
/// The version of this client.
|
||||||
version: Required<String> = ("version", VERSION) => String,
|
#[xml(extract(fields(text)))]
|
||||||
|
pub version: String,
|
||||||
|
|
||||||
/// The OS this client is running on.
|
/// The OS this client is running on.
|
||||||
os: Option<String> = ("os", VERSION) => String
|
#[xml(extract(default, fields(text(type_ = String))))]
|
||||||
]
|
pub os: Option<String>,
|
||||||
);
|
}
|
||||||
|
|
||||||
impl IqResultPayload for VersionResult {}
|
impl IqResultPayload for VersionResult {}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue