2022-09-07 13:25:51 +02:00
|
|
|
use crate::Result;
|
2022-10-05 20:34:31 +02:00
|
|
|
use ruma::RoomId;
|
2022-09-06 23:15:09 +02:00
|
|
|
|
2022-10-05 15:33:57 +02:00
|
|
|
pub trait Data: Send + Sync {
|
2022-06-25 16:12:23 +02:00
|
|
|
/// Adds the room to the public room directory
|
2022-09-07 13:25:51 +02:00
|
|
|
fn set_public(&self, room_id: &RoomId) -> Result<()>;
|
2022-06-25 16:12:23 +02:00
|
|
|
|
|
|
|
|
/// Removes the room from the public room directory.
|
2022-09-07 13:25:51 +02:00
|
|
|
fn set_not_public(&self, room_id: &RoomId) -> Result<()>;
|
2022-06-25 16:12:23 +02:00
|
|
|
|
|
|
|
|
/// Returns true if the room is in the public room directory.
|
2022-09-07 13:25:51 +02:00
|
|
|
fn is_public_room(&self, room_id: &RoomId) -> Result<bool>;
|
2022-06-25 16:12:23 +02:00
|
|
|
|
|
|
|
|
/// Returns the unsorted public room directory
|
2022-09-07 13:25:51 +02:00
|
|
|
fn public_rooms(&self) -> Box<dyn Iterator<Item = Result<Box<RoomId>>>>;
|
2022-06-25 16:12:23 +02:00
|
|
|
}
|