Avoid nested map when retrieving room info from db.

This commit is contained in:
projectmoon 2020-11-29 16:55:23 +00:00
parent 91cfc52e5b
commit c8c38ac1d4
1 changed files with 7 additions and 6 deletions

View File

@ -237,12 +237,13 @@ impl Rooms {
pub fn get_room_info(&self, info: &RoomInfo) -> Result<Option<RoomInfo>, DataError> {
let key = info.room_id.as_bytes();
//swap/flatten Result<Option<Result>> down into the return type.
self.roomid_roominfo
.get(key)
.map(|bytes| bytes.map(|b| bincode::deserialize::<RoomInfo>(&b)))?
.transpose()
.map_err(|e| e.into())
let room_info: Option<RoomInfo> = self
.roomid_roominfo
.get(key)?
.map(|bytes| bincode::deserialize(&bytes))
.transpose()?;
Ok(room_info)
}
pub fn get_rooms_for_user(&self, username: &str) -> Result<HashSet<String>, DataError> {