Add types related to room listing API
This commit is contained in:
parent
ce6582d623
commit
32ff088156
1 changed files with 36 additions and 0 deletions
|
@ -141,6 +141,21 @@ impl Room {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<PublicRoomsChunk> for Room {
|
||||
fn from(input: PublicRoomsChunk) -> Self {
|
||||
let mut room = Self::new(input.room_id, RoomMembership::None);
|
||||
room.alias = input.canonical_alias;
|
||||
room.name = input.name;
|
||||
room.avatar = input.avatar_url;
|
||||
room.topic = input.topic;
|
||||
room.n_members = input.num_joined_members;
|
||||
room.world_readable = input.world_readable;
|
||||
room.guest_can_join = input.guest_can_join;
|
||||
|
||||
room
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for Room {
|
||||
fn eq(&self, other: &Room) -> bool {
|
||||
self.id == other.id
|
||||
|
@ -148,3 +163,24 @@ impl PartialEq for Room {
|
|||
}
|
||||
|
||||
pub type RoomList = HashMap<String, Room>;
|
||||
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
pub struct PublicRoomsResponse {
|
||||
pub chunk: Vec<PublicRoomsChunk>,
|
||||
pub next_batch: Option<String>,
|
||||
pub prev_batch: Option<String>,
|
||||
pub total_room_count_estimate: Option<u64>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
pub struct PublicRoomsChunk {
|
||||
pub aliases: Option<Vec<String>>,
|
||||
pub avatar_url: Option<String>,
|
||||
pub canonical_alias: Option<String>,
|
||||
pub guest_can_join: bool,
|
||||
pub name: Option<String>,
|
||||
pub num_joined_members: i32,
|
||||
pub room_id: String,
|
||||
pub topic: Option<String>,
|
||||
pub world_readable: bool,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue