37 lines
1.3 KiB
Rust
37 lines
1.3 KiB
Rust
|
// 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 {}
|