1use crate::client::Client;
4use crate::messages::Messages;
5use crate::occupancy::OccupancyHandle;
6use crate::types::RoomName;
7
8#[derive(Clone, Debug)]
13pub struct Room {
14 client: Client,
15 room: RoomName,
16}
17
18impl Room {
19 pub(crate) fn new(client: Client, room: RoomName) -> Self {
20 Self { client, room }
21 }
22
23 pub fn name(&self) -> &RoomName {
25 &self.room
26 }
27
28 pub fn messages(&self) -> Messages {
30 Messages::new(self.client.clone(), self.room.clone())
31 }
32
33 pub fn occupancy(&self) -> OccupancyHandle {
35 OccupancyHandle::new(self.client.clone(), self.room.clone())
36 }
37}