Skip to content

Commit 6ecefd6

Browse files
authored
Merge pull request #3554 from Hywan/chore-sdk-remove-get-prefix
2 parents b1c09ed + b21b8c4 commit 6ecefd6

File tree

6 files changed

+30
-34
lines changed

6 files changed

+30
-34
lines changed

crates/matrix-sdk-base/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
- Replace the `Notification` type from Ruma in `SyncResponse` and `StateChanges` by a custom one
44
- The ambiguity maps in `SyncResponse` are moved to `JoinedRoom` and `LeftRoom`
55
- `AmbiguityCache` contains the room member's user ID
6+
- `Store::get_rooms` and `Store::get_rooms_filtered` are way faster because they
7+
don't acquire the lock for every room they read.
8+
- `Store::get_rooms`, `Store::get_rooms_filtered` and `Store::get_room` are
9+
renamed `Store::rooms`, `Store::rooms_filtered` and `Store::room`.
10+
- `Client::get_rooms` and `Client::get_rooms_filtered` are renamed
11+
`Client::rooms` and `Client::rooms_filtered`.
12+
- `Client::get_stripped_rooms` has finally been removed.
613

714
# 0.7.0
815

crates/matrix-sdk-base/src/client.rs

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,13 @@ impl BaseClient {
160160
}
161161

162162
/// Get all the rooms this client knows about.
163-
pub fn get_rooms(&self) -> Vec<Room> {
164-
self.store.get_rooms()
163+
pub fn rooms(&self) -> Vec<Room> {
164+
self.store.rooms()
165165
}
166166

167167
/// Get all the rooms this client knows about, filtered by room state.
168-
pub fn get_rooms_filtered(&self, filter: RoomStateFilter) -> Vec<Room> {
169-
self.store.get_rooms_filtered(filter)
168+
pub fn rooms_filtered(&self, filter: RoomStateFilter) -> Vec<Room> {
169+
self.store.rooms_filtered(filter)
170170
}
171171

172172
/// Lookup the Room for the given RoomId, or create one, if it didn't exist
@@ -175,12 +175,6 @@ impl BaseClient {
175175
self.store.get_or_create_room(room_id, room_state, self.roominfo_update_sender.clone())
176176
}
177177

178-
/// Get all the rooms this client knows about.
179-
#[deprecated = "Use get_rooms_filtered with RoomStateFilter::INVITED instead."]
180-
pub fn get_stripped_rooms(&self) -> Vec<Room> {
181-
self.get_rooms_filtered(RoomStateFilter::INVITED)
182-
}
183-
184178
/// Get a reference to the store.
185179
#[allow(unknown_lints, clippy::explicit_auto_deref)]
186180
pub fn store(&self) -> &DynStateStore {
@@ -572,7 +566,7 @@ impl BaseClient {
572566
on_room_info(room_info);
573567
}
574568
// The `BaseClient` has the `Room`, which has the `RoomInfo`.
575-
else if let Some(room) = client.store.get_room(room_id) {
569+
else if let Some(room) = client.store.room(room_id) {
576570
// Clone the `RoomInfo`.
577571
let mut room_info = room.clone_info();
578572

@@ -637,7 +631,7 @@ impl BaseClient {
637631

638632
if let Some(room) = changes.room_infos.get_mut(room_id) {
639633
room.base_info.dm_targets.insert(user_id.clone());
640-
} else if let Some(room) = self.store.get_room(room_id) {
634+
} else if let Some(room) = self.store.room(room_id) {
641635
let mut info = room.clone_info();
642636
if info.base_info.dm_targets.insert(user_id.clone()) {
643637
changes.add_room(info);
@@ -1111,8 +1105,8 @@ impl BaseClient {
11111105
}
11121106

11131107
for (room_id, room_info) in &changes.room_infos {
1114-
if let Some(room) = self.store.get_room(room_id) {
1115-
room.set_room_info(room_info.clone(), trigger_room_list_update);
1108+
if let Some(room) = self.store.room(room_id) {
1109+
room.set_room_info(room_info.clone(), trigger_room_list_update)
11161110
}
11171111
}
11181112
}
@@ -1143,13 +1137,12 @@ impl BaseClient {
11431137
return Err(Error::InvalidReceiveMembersParameters);
11441138
}
11451139

1146-
let mut chunk = Vec::with_capacity(response.chunk.len());
1147-
1148-
let Some(room) = self.store.get_room(room_id) else {
1140+
let Some(room) = self.store.room(room_id) else {
11491141
// The room is unknown to us: leave early.
11501142
return Ok(());
11511143
};
11521144

1145+
let mut chunk = Vec::with_capacity(response.chunk.len());
11531146
let mut changes = StateChanges::default();
11541147

11551148
#[cfg(feature = "e2e-encryption")]
@@ -1309,7 +1302,7 @@ impl BaseClient {
13091302
///
13101303
/// * `room_id` - The id of the room that should be fetched.
13111304
pub fn get_room(&self, room_id: &RoomId) -> Option<Room> {
1312-
self.store.get_room(room_id)
1305+
self.store.room(room_id)
13131306
}
13141307

13151308
/// Get the olm machine.

crates/matrix-sdk-base/src/sliding_sync.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ impl BaseClient {
223223
for (room_id, raw) in &rooms_account_data {
224224
self.handle_room_account_data(room_id, raw, &mut changes).await;
225225

226-
if let Some(room) = self.store.get_room(room_id) {
226+
if let Some(room) = self.store.room(room_id) {
227227
match room.state() {
228228
RoomState::Joined => new_rooms
229229
.join

crates/matrix-sdk-base/src/store/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,23 +203,23 @@ impl Store {
203203
}
204204

205205
/// Get all the rooms this store knows about.
206-
pub fn get_rooms(&self) -> Vec<Room> {
206+
pub fn rooms(&self) -> Vec<Room> {
207207
self.rooms.read().unwrap().values().cloned().collect()
208208
}
209209

210210
/// Get all the rooms this store knows about, filtered by state.
211-
pub fn get_rooms_filtered(&self, filter: RoomStateFilter) -> Vec<Room> {
211+
pub fn rooms_filtered(&self, filter: RoomStateFilter) -> Vec<Room> {
212212
self.rooms
213213
.read()
214214
.unwrap()
215215
.iter()
216-
.filter(|(_, r)| filter.matches(r.state()))
217-
.filter_map(|(id, _)| self.get_room(id))
216+
.filter(|(_, room)| filter.matches(room.state()))
217+
.map(|(_, room)| room.clone())
218218
.collect()
219219
}
220220

221221
/// Get the room with the given room id.
222-
pub fn get_room(&self, room_id: &RoomId) -> Option<Room> {
222+
pub fn room(&self, room_id: &RoomId) -> Option<Room> {
223223
self.rooms.read().unwrap().get(room_id).cloned()
224224
}
225225

crates/matrix-sdk-base/src/sync.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ impl RoomUpdates {
8989
.keys()
9090
.chain(self.join.keys())
9191
.chain(self.invite.keys())
92-
.filter_map(|room_id| store.get_room(room_id))
92+
.filter_map(|room_id| store.room(room_id))
9393
{
9494
let _ = room.compute_display_name().await;
9595
}

crates/matrix-sdk/src/client/mod.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -901,17 +901,13 @@ impl Client {
901901
///
902902
/// This will return the list of joined, invited, and left rooms.
903903
pub fn rooms(&self) -> Vec<Room> {
904-
self.base_client()
905-
.get_rooms()
906-
.into_iter()
907-
.map(|room| Room::new(self.clone(), room))
908-
.collect()
904+
self.base_client().rooms().into_iter().map(|room| Room::new(self.clone(), room)).collect()
909905
}
910906

911907
/// Get all the rooms the client knows about, filtered by room state.
912908
pub fn rooms_filtered(&self, filter: RoomStateFilter) -> Vec<Room> {
913909
self.base_client()
914-
.get_rooms_filtered(filter)
910+
.rooms_filtered(filter)
915911
.into_iter()
916912
.map(|room| Room::new(self.clone(), room))
917913
.collect()
@@ -920,7 +916,7 @@ impl Client {
920916
/// Returns the joined rooms this client knows about.
921917
pub fn joined_rooms(&self) -> Vec<Room> {
922918
self.base_client()
923-
.get_rooms_filtered(RoomStateFilter::JOINED)
919+
.rooms_filtered(RoomStateFilter::JOINED)
924920
.into_iter()
925921
.map(|room| Room::new(self.clone(), room))
926922
.collect()
@@ -929,7 +925,7 @@ impl Client {
929925
/// Returns the invited rooms this client knows about.
930926
pub fn invited_rooms(&self) -> Vec<Room> {
931927
self.base_client()
932-
.get_rooms_filtered(RoomStateFilter::INVITED)
928+
.rooms_filtered(RoomStateFilter::INVITED)
933929
.into_iter()
934930
.map(|room| Room::new(self.clone(), room))
935931
.collect()
@@ -938,7 +934,7 @@ impl Client {
938934
/// Returns the left rooms this client knows about.
939935
pub fn left_rooms(&self) -> Vec<Room> {
940936
self.base_client()
941-
.get_rooms_filtered(RoomStateFilter::LEFT)
937+
.rooms_filtered(RoomStateFilter::LEFT)
942938
.into_iter()
943939
.map(|room| Room::new(self.clone(), room))
944940
.collect()

0 commit comments

Comments
 (0)