Expand description

A crate parsing common XMPP elements into Rust structures.

Each module implements the TryFrom<Element> trait, which takes a minidom Element and returns a Result whose value is Ok if the element parsed correctly, Err(error::Error) otherwise.

The returned structure can be manipuled as any Rust structure, with each field being public. You can also create the same structure manually, with some having new() and with_*() helper methods to create them.

Once you are happy with your structure, you can serialise it back to an Element, using either From or Into<Element>, which give you what you want to be sending on the wire.

Modules

XML namespace definitions used through XMPP.

RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core

RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core

RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core

RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core

RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core

RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core

RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core

RFC 6121: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence

RFC 7395: An Extensible Messaging and Presence Protocol (XMPP) Subprotocol for WebSocket

XEP-0004: Data Forms

XEP-0030: Service Discovery

XEP-0045: Multi-User Chat

XEP-0047: In-Band Bytestreams

XEP-0048: Bookmarks

XEP-0059: Result Set Management

XEP-0060: Publish-Subscribe

XEP-0071: XHTML-IM

XEP-0077: In-Band Registration

XEP-0082: XMPP Date and Time Profiles

XEP-0084: User Avatar

XEP-0085: Chat State Notifications

XEP-0092: Software Version

XEP-0107: User Mood

XEP-0114: Jabber Component Protocol

XEP-0115: Entity Capabilities

XEP-0118: User Tune

XEP-0157: Contact Addresses for XMPP Services

XEP-0166: Jingle

XEP-0167: Jingle RTP Sessions

XEP-0172: User Nickname

XEP-0176: Jingle ICE-UDP Transport Method

XEP-0177: Jingle Raw UDP Transport Method

XEP-0184: Message Delivery Receipts

XEP-0191: Blocking Command

XEP-0198: Stream Management

XEP-0199: XMPP Ping

XEP-0202: Entity Time

XEP-0203: Delayed Delivery

XEP-0215: External Service Discovery

XEP-0221: Data Forms Media Element

XEP-0224: Attention

XEP-0231: Bits of Binary

XEP-0234: Jingle File Transfer

XEP-0257: Client Certificate Management for SASL EXTERNAL

XEP-0260: Jingle SOCKS5 Bytestreams Transport Method

XEP-0261: Jingle In-Band Bytestreams Transport Method

XEP-0280: Message Carbons

XEP-0293: Jingle RTP Feedback Negotiation

XEP-0294: Jingle RTP Header Extensions Negociation

XEP-0297: Stanza Forwarding

XEP-0300: Use of Cryptographic Hash Functions in XMPP

XEP-0308: Last Message Correction

XEP-0313: Message Archive Management

XEP-0319: Last User Interaction in Presence

XEP-0320: Use of DTLS-SRTP in Jingle Sessions

XEP-0328: JID Prep

XEP-0338: Jingle Grouping Framework

XEP-0339: Source-Specific Media Attributes in Jingle

XEP-0352: Client State Indication

XEP-0353: Jingle Message Initiation

XEP-0359: Unique and Stable Stanza IDs

XEP-0363: HTTP File Upload

XEP-0369: Mediated Information eXchange (MIX)

XEP-0373: OpenPGP for XMPP

XEP-0380: Explicit Message Encryption

XEP-0390: Entity Capabilities 2.0

XEP-0402: PEP Native Bookmarks

XEP-0421: Anonymous unique occupant identifiers for MUCs

XEP-0441: Message Archive Management Preferences

Enums

Contains one of the potential errors triggered while parsing an Element into a specialised struct.

Structs

A struct representing a bare Jabber ID.

A struct representing a full Jabber ID.

Enums

An enum representing a Jabber ID. It can be either a FullJid or a BareJid.

An error that signifies that a Jid cannot be parsed from a string.

Structs

A struct representing a DOM Element.