mirror of
https://gitlab.com/xmpp-rs/xmpp-rs.git
synced 2024-07-12 22:21:53 +00:00
Add Private XML Storage (XEP-0049) support for legacy bookmarks (XEP-0048 v1.0)
This commit is contained in:
parent
7a55608433
commit
f1713231c4
3 changed files with 42 additions and 0 deletions
|
@ -70,6 +70,9 @@ pub mod ibb;
|
|||
/// XEP-0048: Bookmarks
|
||||
pub mod bookmarks;
|
||||
|
||||
/// XEP-0049: Private XML storage
|
||||
pub mod private;
|
||||
|
||||
/// XEP-0059: Result Set Management
|
||||
pub mod rsm;
|
||||
|
||||
|
|
|
@ -43,6 +43,9 @@ pub const IBB: &str = "http://jabber.org/protocol/ibb";
|
|||
/// XEP-0048: Bookmarks
|
||||
pub const BOOKMARKS: &str = "storage:bookmarks";
|
||||
|
||||
/// XEP-0049: Private XML Storage
|
||||
pub const PRIVATE: &str = "jabber:iq:private";
|
||||
|
||||
/// XEP-0059: Result Set Management
|
||||
pub const RSM: &str = "http://jabber.org/protocol/rsm";
|
||||
|
||||
|
|
36
parsers/src/private.rs
Normal file
36
parsers/src/private.rs
Normal file
|
@ -0,0 +1,36 @@
|
|||
// Copyright (c) 2023 xmppftw <xmppftw@kl.netlib.re>
|
||||
//
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// 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/.
|
||||
|
||||
//!
|
||||
//! This module implements [Private XML Storage](https://xmpp.org/extensions/xep-0049.html) from
|
||||
//! XEP-0049.
|
||||
//!
|
||||
//! However, only legacy bookmarks storage from [XEP-0048
|
||||
//! v1.0](https://xmpp.org/extensions/attic/xep-0048-1.0.html) is supported at the moment.
|
||||
//! This should only be used when `urn:xmpp:bookmarks:1#compat` is not advertised on the user's
|
||||
//! BareJID in a disco info request.
|
||||
//!
|
||||
//! See [ModernXMPP docs](https://docs.modernxmpp.org/client/groupchat/#bookmarks) on how to handle
|
||||
//! all historic and newer specifications for your clients handling of chatroom bookmarks.
|
||||
|
||||
use crate::{
|
||||
bookmarks::Storage,
|
||||
iq::{IqGetPayload, IqResultPayload, IqSetPayload},
|
||||
};
|
||||
|
||||
generate_element!(
|
||||
/// A Private XML Storage query. Only supports XEP-0048 bookmarks.
|
||||
Query, "query", PRIVATE,
|
||||
attributes: [],
|
||||
children: [
|
||||
/// XEP-0048 bookmarks in a [`Storage`] element
|
||||
storage: Required<Storage> = ("storage", BOOKMARKS) => Storage,
|
||||
]
|
||||
);
|
||||
|
||||
impl IqSetPayload for Query {}
|
||||
impl IqGetPayload for Query {}
|
||||
impl IqResultPayload for Query {}
|
Loading…
Reference in a new issue