use super::room::Room; pub trait Rooms { fn create(&mut self, sender: String) -> Box; fn join(&self, sender: String, room_id: String) -> Result, &str>; } #[cfg(test)] mod tests { use super::Rooms; use super::Room; use super::super::mockrooms::MockRooms; #[test] fn mockrooms() { fn gen() -> impl Rooms { let r = MockRooms::new(); r } let mut rooms = gen(); let mut room_ptr: Box = rooms.create("abc".to_string()); assert!(room_ptr.send("hi".to_string()).is_ok()); } }