parsers: port more generate_element! usages to derive macros

This commit is contained in:
Jonas Schäfer 2024-06-26 16:07:06 +02:00
commit e439e9991e
6 changed files with 79 additions and 68 deletions

View file

@ -5,27 +5,32 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
use xso::{FromXml, IntoXml};
use crate::date::DateTime;
use crate::ns;
use crate::presence::PresencePayload;
generate_element!(
/// Represents the query for messages before our join.
#[derive(Default)]
History, "history", MUC,
attributes: [
/// How many characters of history to send, in XML characters.
maxchars: Option<u32> = "maxchars",
/// Represents the query for messages before our join.
#[derive(FromXml, IntoXml, PartialEq, Debug, Clone, Default)]
#[xml(namespace = ns::MUC, name = "history")]
pub struct History {
/// How many characters of history to send, in XML characters.
#[xml(attribute(default))]
pub maxchars: Option<u32>,
/// How many messages to send.
maxstanzas: Option<u32> = "maxstanzas",
/// How many messages to send.
#[xml(attribute(default))]
pub maxstanzas: Option<u32>,
/// Only send messages received in these last seconds.
seconds: Option<u32> = "seconds",
/// Only send messages received in these last seconds.
#[xml(attribute(default))]
pub seconds: Option<u32>,
/// Only send messages after this date.
since: Option<DateTime> = "since",
]
);
/// Only send messages after this date.
#[xml(attribute(default))]
pub since: Option<DateTime>,
}
impl History {
/// Create a new empty history element.