// Copyright (c) 2023 xmppftw // // 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. //! //! This module uses the legacy bookmarks [`bookmarks::Conference`][crate::bookmarks::Conference] //! struct as stored in a legacy [`bookmarks::Storage`][crate::bookmarks::Storage] struct. 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", BOOKMARKS) => Storage, ] ); impl IqSetPayload for Query {} impl IqGetPayload for Query {} impl IqResultPayload for Query {}