xmpp-parsers: Convert sm’s Enable and Enabled to xso

This commit is contained in:
Emmanuel Gil Peyrot 2024-07-24 18:07:06 +02:00 committed by Maxime “pep” Buquet
parent 01a61c6099
commit 1a7dec6f1e

View file

@ -32,19 +32,19 @@ generate_attribute!(
bool bool
); );
generate_element!( /// Client request for enabling stream management.
/// Client request for enabling stream management. #[derive(FromXml, AsXml, PartialEq, Debug, Clone, Default)]
#[derive(Default)] #[xml(namespace = ns::SM, name = "enable")]
Enable, "enable", SM, pub struct Enable {
attributes: [ /// The preferred resumption time in seconds by the client.
/// The preferred resumption time in seconds by the client. // TODO: should be the infinite integer set ≥ 1.
// TODO: should be the infinite integer set ≥ 1. #[xml(attribute(default))]
max: Option<u32> = "max", pub max: Option<u32>,
/// Whether the client wants to be allowed to resume the stream. /// Whether the client wants to be allowed to resume the stream.
resume: Default<ResumeAttr> = "resume", #[xml(attribute(default))]
] pub resume: ResumeAttr,
); }
impl Enable { impl Enable {
/// Generates a new `<enable/>` element. /// Generates a new `<enable/>` element.
@ -70,25 +70,28 @@ generate_id!(
StreamId StreamId
); );
generate_element!( /// Server response once stream management is enabled.
/// Server response once stream management is enabled. #[derive(FromXml, AsXml, PartialEq, Debug, Clone)]
Enabled, "enabled", SM, #[xml(namespace = ns::SM, name = "enabled")]
attributes: [ pub struct Enabled {
/// A random identifier used for stream resumption. /// A random identifier used for stream resumption.
id: Option<StreamId> = "id", #[xml(attribute(default))]
pub id: Option<StreamId>,
/// The preferred IP, domain, IP:port or domain:port location for /// The preferred IP, domain, IP:port or domain:port location for
/// resumption. /// resumption.
location: Option<String> = "location", #[xml(attribute(default))]
pub location: Option<String>,
/// The preferred resumption time in seconds by the server. /// The preferred resumption time in seconds by the server.
// TODO: should be the infinite integer set ≥ 1. // TODO: should be the infinite integer set ≥ 1.
max: Option<u32> = "max", #[xml(attribute(default))]
pub max: Option<u32>,
/// Whether stream resumption is allowed. /// Whether stream resumption is allowed.
resume: Default<ResumeAttr> = "resume", #[xml(attribute(default))]
] pub resume: ResumeAttr,
); }
generate_element!( generate_element!(
/// A stream management error happened. /// A stream management error happened.