Browse Source

Introduce RoomNotFoundError.

main
Titouan Rigoudy 2 years ago
parent
commit
e773b1500f
1 changed files with 13 additions and 6 deletions
  1. +13
    -6
      client/src/room/map.rs

+ 13
- 6
client/src/room/map.rs View File

@ -10,13 +10,17 @@ use crate::room::{Membership, Room, Visibility};
/// The error returned by RoomMap functions.
#[derive(Debug, Error)]
pub enum RoomError {
#[error("room {0} not found")]
RoomNotFound(String),
#[error(transparent)]
RoomNotFound(#[from] RoomNotFoundError),
#[error("cannot change membership from {0:?} to {1:?}")]
MembershipChangeInvalid(Membership, Membership),
}
#[derive(Debug, Error)]
#[error("room {0} not found")]
pub struct RoomNotFoundError(String);
/// Contains the mapping from room names to room data and provides a clean
/// interface to interact with it.
#[derive(Debug, Default)]
@ -39,10 +43,13 @@ impl RoomMap {
/// Looks up the given room name in the map, returning an immutable
/// reference to the associated data if found, or an error if not found.
pub fn get_strict(&self, room_name: &str) -> Result<&Room, RoomError> {
pub fn get_strict(
&self,
room_name: &str,
) -> Result<&Room, RoomNotFoundError> {
match self.map.get(room_name) {
Some(room) => Ok(room),
None => Err(RoomError::RoomNotFound(room_name.to_string())),
None => Err(RoomNotFoundError(room_name.to_string())),
}
}
@ -51,10 +58,10 @@ impl RoomMap {
pub fn get_mut_strict(
&mut self,
room_name: &str,
) -> Result<&mut Room, RoomError> {
) -> Result<&mut Room, RoomNotFoundError> {
match self.map.get_mut(room_name) {
Some(room) => Ok(room),
None => Err(RoomError::RoomNotFound(room_name.to_string())),
None => Err(RoomNotFoundError(room_name.to_string())),
}
}


Loading…
Cancel
Save