6.3 KiB
[unreleased]
Breaking changes:
- Update strum dependency to 0.19
- Remove deprecated constructors
- Remove deprecated
is_methods
Improvements:
- Add
DeviceKeyId::from_partsandServerKeyId::from_parts - Add
DeviceIdBoxandServerNameBoxtype aliases
0.17.4
Bug fixes:
- Fix key algorithm serde (de)serialization
- Fix
key_algorithms::{DeviceKeyAlgorithm, ServerKeyAlgorithm}not implementingDeserializeandSerializewithdefault-features = false+features = ["serde", …]
0.17.3
Bug fixes:
- Fix
key_algorithms::{DeviceKeyAlgorithm, ServerKeyAlgorithm}not implementingDeserializeandSerializewith the default feature set- This bug was introduced in 0.17.2
- This problem still persists with
default-features = false+features = ["serde", …], but there was never a reason to use ruma-identifiers like that
0.17.2 (yanked)
Bug fixes:
- Fix
RoomVersionId::is_version_6actually checking for version 5 - Fix
TryFromimplementations forRoomVersionId, which previously returnedRoomVersionId::Customfor the input6
Improvements:
- Add macros to construct identifiers with compile-time validation
0.17.1
Improvements:
- Add
.as_bytes()to all identifier types that already had.as_str()
0.17.0
Breaking changes:
-
Change
RoomVersionIdfrom being an opaque struct to a non-exhaustive enum- The constructor functions and
is_predicates are now deprecated - Remove
RoomVersionId::custom. It could be used to create invalid room versions (empty or exceeding 32 code points in length). Use theTryFrom<&str>orTryFrom<String>implementation instead.
- The constructor functions and
-
Remove diesel integration. If you were using it, please comment on the corresponding issue: https://github.com/ruma/ruma-identifiers/issues/22
-
Remove
TryFrom<Cow<'_, str>>implementations for identifier types -
Update
parse_with_server_names signature (instead ofInto<String>it now requiresInto<Box<str>>of the id type). This is technically a breaking change, but extremely unlikely to affect any existing code. -
Modify identifier types to use the new
ServerNametype:-
Change signature of
new()methods ofEventId,RoomId, andUserIdfromfn new(&str) -> Result<Self, Error> //...to
fn new(&ServerName) -> Self -
Change signature of
server_name()forEventId,RoomAliasId,RoomId,RoomIdOrAliasId,UserIdfromfn server_name() -> &strto
fn server_name() -> &ServerName
-
-
Change
DeviceIdfrom being an alias forStringto being a newtype aroundstrThis means owned device IDs are now
Box<DeviceId>.
Deprecations:
- Mark
server_name::is_valid_server_nameas deprecated in favor of<&ServerName>::try_from()
Improvements:
- Add
DeviceKeyId,DeviceKeyAlgorithm,ServerKeyId, andServerKeyAlgorithm - Add a
ServerNametype- This is a dynamically-sized type, if you need to store it use
Box<ServerName>
- This is a dynamically-sized type, if you need to store it use
0.16.2
Improvements:
- Update the internal representation of identifiers to be more compact
- Add
RoomVersionId::version_6andRoomVersionId::is_version_6 - Add
PartialOrdandOrdimplementations forRoomVersionId
0.16.1
Bug fixes:
- Change
PartialEqimplementations to compare IDs with string literals fromstrto&str- This is technically a breaking change, but the previous implementations were extremely unlikely to actually be used
0.16.0
Breaking changes:
- Update
RoomId::parse_with_server_names bounds fromInto<Cow<'_, str>>toAsRef<str> + Into<String>. While this is a breaking change, it is not expected to actually require code changes.
Improvements:
- Add conversion functions for
RoomIdOrAliasIdimpl From<RoomId> for RoomIdOrAliasIdimpl From<RoomAliasId> for RoomIdOrAliasIdimpl TryFrom<RoomIdOrAliasId> for RoomIdimpl TryFrom<RoomIdOrAliasId> for RoomAliasIdRoomIdOrAliasId::into_either(if the optional dependencyeitheris activated with the identically named feature)
0.15.1
Bug fixes:
- Fix docs.rs build
0.15.0
Breaking changes:
- All identifiers now allocate at maximum one string (localpart and host are no longer stored
separately)
- Because of this, these traits are now implemented for them and only allocate in the obvious
case:
impl From<…Id> for Stringimpl AsRef<str> for …Idimpl TryFrom<Cow<'_, str>> for …Idimpl TryFrom<String> for …IdPartialEqforStrings and string slices
- Additionally, the
Hashimplementations will now yield the same hashes as hashing the string representation- Note that hashes are generally only guaranteed consistent in the lifetime of the program though, so do not persist them!
- The
hostnamemethods have been rename toserver_nameand updated to return string slices instead of&url::Host
- Because of this, these traits are now implemented for them and only allocate in the obvious
case:
Error::InvalidHosthas been renamed toError::InvalidServerName, because it also covers errors in the port, not just the host part section of the server name- The random identifier generation functions (
Id::new) are now only available if therandfeature of this crate is enabled
Improvements:
- Add support for historical uppercase MXIDs
- Made all dependencies optional
serdeis the only one that is enabled by default
- The
user_idmodule is now public and containsfn localpart_is_fully_conforming- This function can be used to determine whether a user name (the localpart of a user ID) is valid without actually constructing a full user ID first
- Add
UserId::parse_with_server_name
0.14.1
Breaking changes:
- Our Minimum Supported Rust Version is now 1.36.0
- This is done in a patch version because it is only a documentation change. Practially, a new project using even ruma-identifiers 0.14 won't build out of the box on older versions of Rust because of an MSRV bump in a minor release of an indirect dependency. Using ruma-identifiers with older versions of Rust will potentially continue to work with some crates pinned to older versions, but won't be tested in CI.
Improvements:
- Remove the dependency on
lazy_staticandregex - We now support historical user IDs