At the same time, this commit makes `ServerName` a newtype around str so other identifier types can borrow out their server name part as a `&ServerName`. This technique works for `ServerName` because it keeps no additional metadata. For the other identifier types to support being created in borrowed form from a string slice, custom DSTs first have to be added to Rust.
ruma-identifiers
ruma-identifiers contains types for Matrix identifiers for events, rooms, room aliases, and users.
Minimum Rust version
ruma-identifiers requires Rust 1.36.0 or later.
Documentation
ruma-identifiers has comprehensive documentation available on docs.rs.