xmpp-rs-mirror/jid/CHANGELOG.md
Jonas Schäfer 2c701038cd Implement as_str on all Jid types
This is useful for printing with quotes without copying any data.
2024-03-10 10:51:53 +01:00

5.5 KiB

Version xxx, release xxx:

  • Breaking:
    • With the addition of str-like types for DomainPart, NodePart and ResourcePart, the functions on Jid, BareJid and FullJid which return the respective types have been changed to return references instead. Use ToOwned::to_owned to obtain a copy or .as_str() to obtain a plain str reference.
    • The node_str, domain_str and resource_str functions returning str references have been removed from the JID types. Use .as_str() or .map(|x| x.as_str()) on the corresponding node/domain/resource functions instead.
  • Additions:
    • Add optional quote support. Implement quote::ToTokens for Jid, FullJid and BareJid.
    • str-like reference types have been added for DomainPart, NodePart and ResourcePart, called DomainRef, NodeRef and ResourceRef respectively.
    • Convenience methods to combine DomainPart and NodePart to a BareJid have been added, including impl From<DomainPart> for BareJid and impl From<DomainPart> for Jid, both of which are (unlike ::from_parts) copy-free.
    • as_str methods have been added on all Jid types.

Version 0.10.0, release 2023-08-17:

  • Breaking
    • serde: Jid is now using untagged enum representation (#66)
    • JidParseError has been renamed Error
    • Jid::new, FullJid::new, and BareJid::new now take a single stringy argument and return a Result ; to build JIDs from separate parts, use the from_parts() method instead (#204)
  • Additions
    • Parsing invalid JIDs with stringprep feature no longer results in panic, returning Error with NodePrep, NamePrep or ResourcePrep variant instead (#84)
    • Parsing already-normalized JIDs with stringprep is much faster, about 20 times.
    • JID parts are now typed as NodePart, DomainPart and ResourcePart ; once part into those types, JID operations cannot fail
    • BareJid::with_resource appends a ResourcePart to a BareJid to produce a FullJid (#204)
    • BareJid::with_resource_str appends a stringy resource to a BareJid to produce a FullJid, and can fail in case of resource stringprep or length check error (#204)
    • Jid::from_parts, BareJid::from_parts, and FullJid::from_parts enable to build JIDs from typed Parts and cannot fail (#204)
    • Jid::node(), BareJid::node(), and FullJid::node() now return an option of the typed NodePart ; the node_str() method returns the same information as a string slice (#204)
    • Jid::domain(), BareJid::domain(), and FullJid::domain() now return the typed DomainPart ; the domain_str() method returns the same information as a string slice (#204)
    • FullJid::resource() returns the typed ResourcePart ; the resource_str() method returns the same information as a string slice (#204)
    • Jid::resource() returns an optional typed ResourcePart ; the resource_str() method returns the same information as a string slice (#204)
    • Add serde_test in tests to ensure correctness of Serialize / Deserialize implementations.

Version 0.9.3, release 2022-03-07:

  • Updates
    • Bumped minidom to 0.14

Version 0.9.2, release 2021-01-13:

  • Updates
    • Bumped minidom to 0.13

Version 0.9.1, release 2021-01-13:

  • Updates
    • Added serde support behind "serde" feature
    • Added equality operators between Jid, BareJid and FullJid.

Version 0.9.0, release 2020-02-15:

  • Breaking
    • Update minidom dependency to 0.12

Version 0.8, released 2019-10-15:

  • Updates
    • CI: Split jobs, add tests, and caching
  • Breaking
    • 0.7.1 was actually a breaking release

Version 0.7.2, released 2019-09-13:

  • Updates
    • Impl Error for JidParseError again, it got removed due to the failure removal but is still wanted.

Version 0.7.1, released 2019-09-06:

  • Updates
    • Remove failure dependency, to keep compilation times in check
    • Impl Display for Jid

Version 0.7.0, released 2019-07-26:

  • Breaking
    • Update minidom dependency to 0.11

Version 0.6.2, released 2019-07-20:

  • Updates
    • Implement From and From for Jid
    • Add node and domain getters on Jid

Version 0.6.1, released 2019-06-10:

  • Updates
    • Change the license from LGPLv3 to MPL-2.0.

Version 0.6.0, released 2019-06-10:

  • Updates
    • Jid is now an enum, with two variants, Bare(BareJid) and Full(FullJid).
    • BareJid and FullJid are two specialised variants of a JID.

Version 0.5.3, released 2019-01-16:

  • Updates
    • Link Mauve bumped the minidom dependency version.
    • Use Edition 2018, putting the baseline rustc version to 1.31.
    • Run cargo-fmt on the code, to lower the barrier of entry.

Version 0.5.2, released 2018-07-31:

  • Updates
    • Astro bumped the minidom dependency version.
    • Updated the changelog to reflect that 0.5.1 was never actually released.

Version 0.5.1, "released" 2018-03-01:

  • Updates
    • Link Mauve implemented failure::Fail on JidParseError.
    • Link Mauve simplified the code a bit.

Version 0.5.0, released 2018-02-18:

  • Updates
    • Link Mauve has updated the optional minidom dependency.
    • Link Mauve has added tests for invalid JIDs, which adds more error cases.

Version 0.4.0, released 2017-12-27:

  • Updates
    • Maxime Buquet has updated the optional minidom dependency.
    • The repository has been transferred to xmpp-rs/jid-rs.

Version 0.3.1, released 2017-10-31: