From 4fb83a0fef295c92125cbcc0a82048c2eade13d8 Mon Sep 17 00:00:00 2001 From: projectmoon Date: Sat, 29 May 2021 15:23:38 +0000 Subject: [PATCH] Sort rooms in get_rooms_for_user for consistency. --- src/commands/rooms.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/commands/rooms.rs b/src/commands/rooms.rs index ac951e7..48b90f6 100644 --- a/src/commands/rooms.rs +++ b/src/commands/rooms.rs @@ -64,7 +64,7 @@ async fn get_rooms_for_user( ) -> Result, BotError> { let user_id = UserId::try_from(user_id)?; let rooms_for_user = matrix::get_rooms_for_user(client, &user_id).await?; - let rooms_for_user: Vec = stream::iter(rooms_for_user) + let mut rooms_for_user: Vec = stream::iter(rooms_for_user) .filter_map(|room| async move { Some(room.display_name().await.map(|room_name| RoomNameAndId { id: room.room_id().to_string(), @@ -74,6 +74,12 @@ async fn get_rooms_for_user( .try_collect() .await?; + //Alphabetically descending, symbols first, ignore case. + let sort = |r1: &RoomNameAndId, r2: &RoomNameAndId| { + r1.name.to_lowercase().cmp(&r2.name.to_lowercase()) + }; + + rooms_for_user.sort_by(sort); Ok(rooms_for_user) }