diff --git a/src/game.rs b/src/game.rs index bf37718..e66b1fb 100644 --- a/src/game.rs +++ b/src/game.rs @@ -33,12 +33,15 @@ impl RoomFormat { #[derive(Debug, Eq, PartialEq, Copy, Clone)] pub enum RoomType {Room, Set} -impl From<&str> for RoomType { - fn from(string: &str) -> RoomType { +#[derive(Debug)] +pub struct InvalidRoomType; + +impl RoomType { + fn from(string: &str) -> Result { match string { - "ROOM" => RoomType::Room, - "SET" => RoomType::Set, - _ => panic!("Unrecognised room type"), + "ROOM" => Ok(RoomType::Room), + "SET" => Ok(RoomType::Set), + _ => Err(InvalidRoomType), } } }