identifiers: Implement From<Owned*Id> for MatrixId

This commit is contained in:
Kévin Commaille 2022-06-29 13:24:49 +02:00 committed by Kévin Commaille
parent 803fd38f99
commit cbcf9b0a7b
2 changed files with 43 additions and 6 deletions

View File

@ -41,6 +41,7 @@ Improvements:
* Add `MatrixVersionId::V10` (MSC3604)
* Add methods to sanitize messages according to the spec behind the `unstable-sanitize` feature
* Can also remove rich reply fallbacks
* Implement `From<Owned*Id>` for `identifiers::matrix_uri::MatrixId`
# 0.9.2

View File

@ -197,39 +197,75 @@ impl MatrixId {
}
}
impl From<OwnedRoomId> for MatrixId {
fn from(room_id: OwnedRoomId) -> Self {
Self::Room(room_id)
}
}
impl From<&RoomId> for MatrixId {
fn from(room_id: &RoomId) -> Self {
Self::Room(room_id.into())
room_id.to_owned().into()
}
}
impl From<OwnedRoomAliasId> for MatrixId {
fn from(room_alias: OwnedRoomAliasId) -> Self {
Self::RoomAlias(room_alias)
}
}
impl From<&RoomAliasId> for MatrixId {
fn from(room_alias: &RoomAliasId) -> Self {
Self::RoomAlias(room_alias.into())
room_alias.to_owned().into()
}
}
impl From<OwnedUserId> for MatrixId {
fn from(user_id: OwnedUserId) -> Self {
Self::User(user_id)
}
}
impl From<&UserId> for MatrixId {
fn from(user_id: &UserId) -> Self {
Self::User(user_id.into())
user_id.to_owned().into()
}
}
impl From<(OwnedRoomOrAliasId, OwnedEventId)> for MatrixId {
fn from(ids: (OwnedRoomOrAliasId, OwnedEventId)) -> Self {
Self::Event(ids.0, ids.1)
}
}
impl From<(&RoomOrAliasId, &EventId)> for MatrixId {
fn from(ids: (&RoomOrAliasId, &EventId)) -> Self {
Self::Event(ids.0.into(), ids.1.into())
(ids.0.to_owned(), ids.1.to_owned()).into()
}
}
impl From<(OwnedRoomId, OwnedEventId)> for MatrixId {
fn from(ids: (OwnedRoomId, OwnedEventId)) -> Self {
Self::Event(ids.0.into(), ids.1)
}
}
impl From<(&RoomId, &EventId)> for MatrixId {
fn from(ids: (&RoomId, &EventId)) -> Self {
Self::Event(<&RoomOrAliasId>::from(ids.0).into(), ids.1.into())
(ids.0.to_owned(), ids.1.to_owned()).into()
}
}
impl From<(OwnedRoomAliasId, OwnedEventId)> for MatrixId {
fn from(ids: (OwnedRoomAliasId, OwnedEventId)) -> Self {
Self::Event(ids.0.into(), ids.1)
}
}
impl From<(&RoomAliasId, &EventId)> for MatrixId {
fn from(ids: (&RoomAliasId, &EventId)) -> Self {
Self::Event(<&RoomOrAliasId>::from(ids.0).into(), ids.1.into())
(ids.0.to_owned(), ids.1.to_owned()).into()
}
}