Skip to content

Refactor the JID types

Link Mauve requested to merge linkmauve/xmpp-rs:better-jid into main

The main reason for this refactor was to make common operations simpler, for instance formatting a JID is now a simple clone of a String.

Instead of having three different String for each of node, domain and resource, we now have a single String with offsets pointing to where the at and slash are (if they are present).

This also reduces the size of a FullJid from 72 bytes to 32 bytes on 64-bit platforms (less so on 32-bit), and BareJid from 48 bytes to 32 bytes. Jid is still 40 bytes instead of 32, but that can be improved in a future version where InnerJid has been inlined into each struct.

Merge request reports