diff --git a/crates/ruma-common/CHANGELOG.md b/crates/ruma-common/CHANGELOG.md index d125558b..340bfbd9 100644 --- a/crates/ruma-common/CHANGELOG.md +++ b/crates/ruma-common/CHANGELOG.md @@ -10,6 +10,7 @@ Improvements: * Add `MatrixVersion::V1_4` * Stabilize default room server ACL push rule +* Stabilize `room_types` in `directory::Filter` and `room_type` in `directory::PublicRoomsChunk` # 0.10.3 diff --git a/crates/ruma-common/Cargo.toml b/crates/ruma-common/Cargo.toml index 25fdc2c5..fa154293 100644 --- a/crates/ruma-common/Cargo.toml +++ b/crates/ruma-common/Cargo.toml @@ -47,7 +47,6 @@ unstable-msc3551 = ["unstable-msc1767"] unstable-msc3552 = ["unstable-msc3551"] unstable-msc3553 = ["unstable-msc3552"] unstable-msc3554 = ["unstable-msc1767"] -unstable-msc3827 = [] unstable-pdu = [] unstable-sanitize = ["dep:html5ever", "dep:phf"] unstable-unspecified = [] diff --git a/crates/ruma-common/src/directory.rs b/crates/ruma-common/src/directory.rs index 4ab91f8c..f324f182 100644 --- a/crates/ruma-common/src/directory.rs +++ b/crates/ruma-common/src/directory.rs @@ -3,13 +3,11 @@ use js_int::UInt; use serde::{Deserialize, Serialize}; -#[cfg(feature = "unstable-msc3827")] mod filter_room_type_serde; mod room_network_serde; -#[cfg(feature = "unstable-msc3827")] -use crate::room::RoomType; use crate::{ + room::RoomType, serde::{Incoming, StringEnum}, OwnedMxcUri, OwnedRoomAliasId, OwnedRoomId, PrivOwnedStr, }; @@ -67,16 +65,7 @@ pub struct PublicRoomsChunk { pub join_rule: PublicRoomJoinRule, /// The type of room from `m.room.create`, if any. - /// - /// This field uses the unstable prefix from [MSC3827]. - /// - /// [MSC3827]: https://github.com/matrix-org/matrix-spec-proposals/pull/3827 - #[cfg(feature = "unstable-msc3827")] - #[serde( - rename = "org.matrix.msc3827.room_type", - alias = "room_type", - skip_serializing_if = "Option::is_none" - )] + #[serde(skip_serializing_if = "Option::is_none")] pub room_type: Option, } @@ -117,7 +106,6 @@ impl From for PublicRoomsChunk { guest_can_join, avatar_url: None, join_rule: PublicRoomJoinRule::default(), - #[cfg(feature = "unstable-msc3827")] room_type: None, } } @@ -135,17 +123,7 @@ pub struct Filter<'a> { /// The room types to include in the results. /// /// Includes all room types if it is empty. - /// - /// This field uses the unstable prefix from [MSC3827]. - /// - /// [MSC3827]: https://github.com/matrix-org/matrix-spec-proposals/pull/3827 - #[cfg(feature = "unstable-msc3827")] - #[serde( - rename = "org.matrix.msc3827.room_types", - alias = "room_types", - default, - skip_serializing_if = "Vec::is_empty" - )] + #[serde(default, skip_serializing_if = "Vec::is_empty")] pub room_types: Vec, } @@ -208,7 +186,6 @@ pub enum PublicRoomJoinRule { /// /// To check for values that are not available as a documented variant here, use its string /// representation, obtained through [`.as_str()`](Self::as_str()). -#[cfg(feature = "unstable-msc3827")] #[derive(Clone, Debug, PartialEq, Eq)] #[non_exhaustive] pub enum RoomTypeFilter { @@ -223,7 +200,6 @@ pub enum RoomTypeFilter { _Custom(PrivOwnedStr), } -#[cfg(feature = "unstable-msc3827")] impl RoomTypeFilter { /// Get the string representation of this `RoomTypeFilter`. /// @@ -237,7 +213,6 @@ impl RoomTypeFilter { } } -#[cfg(feature = "unstable-msc3827")] impl From> for RoomTypeFilter where T: AsRef + Into>, @@ -255,13 +230,10 @@ where #[cfg(test)] mod tests { - #[cfg(feature = "unstable-msc3827")] use assert_matches::assert_matches; use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; - #[cfg(feature = "unstable-msc3827")] - use super::RoomTypeFilter; - use super::{Filter, IncomingFilter, IncomingRoomNetwork, RoomNetwork}; + use super::{Filter, IncomingFilter, IncomingRoomNetwork, RoomNetwork, RoomTypeFilter}; #[test] fn serialize_matrix_network_only() { @@ -341,11 +313,9 @@ mod tests { let json = json!({}); let filter = from_json_value::(json).unwrap(); assert_eq!(filter.generic_search_term, None); - #[cfg(feature = "unstable-msc3827")] assert_eq!(filter.room_types.len(), 0); } - #[cfg(feature = "unstable-msc3827")] #[test] fn serialize_filter_room_types() { let filter = Filter { @@ -356,25 +326,12 @@ mod tests { Some("custom_type").into(), ], }; - let json = json!({ "org.matrix.msc3827.room_types": [null, "m.space", "custom_type"] }); + let json = json!({ "room_types": [null, "m.space", "custom_type"] }); assert_eq!(to_json_value(filter).unwrap(), json); } - #[cfg(feature = "unstable-msc3827")] #[test] - fn deserialize_filter_room_types_unstable() { - let json = json!({ "org.matrix.msc3827.room_types": [null, "m.space", "custom_type"] }); - let filter = from_json_value::(json).unwrap(); - assert_eq!(filter.room_types.len(), 3); - assert_eq!(filter.room_types[0], RoomTypeFilter::Default); - assert_eq!(filter.room_types[1], RoomTypeFilter::Space); - assert_matches!(filter.room_types[2], RoomTypeFilter::_Custom(_)); - assert_eq!(filter.room_types[2].as_str(), Some("custom_type")); - } - - #[cfg(feature = "unstable-msc3827")] - #[test] - fn deserialize_filter_room_types_stable() { + fn deserialize_filter_room_types() { let json = json!({ "room_types": [null, "m.space", "custom_type"] }); let filter = from_json_value::(json).unwrap(); assert_eq!(filter.room_types.len(), 3); diff --git a/crates/ruma/Cargo.toml b/crates/ruma/Cargo.toml index 17ad66b2..c4445a13 100644 --- a/crates/ruma/Cargo.toml +++ b/crates/ruma/Cargo.toml @@ -157,7 +157,6 @@ unstable-msc3554 = ["ruma-common/unstable-msc3554"] unstable-msc3575 = ["ruma-client-api?/unstable-msc3575"] unstable-msc3618 = ["ruma-federation-api?/unstable-msc3618"] unstable-msc3723 = ["ruma-federation-api?/unstable-msc3723"] -unstable-msc3827 = ["ruma-common/unstable-msc3827"] unstable-pdu = ["ruma-common/unstable-pdu"] unstable-sanitize = ["ruma-common/unstable-sanitize"] unstable-unspecified = [ @@ -194,7 +193,6 @@ __ci = [ "unstable-msc3575", "unstable-msc3618", "unstable-msc3723", - "unstable-msc3827", ] [dependencies]