pub mod v1 {
use js_int::UInt;
use ruma_common::{
api::{request, response},
directory::{PublicRoomsChunk, RoomNetwork},
metadata,
};
use crate::authentication::ServerSignatures;
metadata! {
method: GET,
rate_limited: false,
authentication: ServerSignatures,
path: "/_matrix/federation/v1/publicRooms",
}
#[request]
#[derive(Default)]
pub struct Request {
#[serde(skip_serializing_if = "Option::is_none")]
#[ruma_api(query)]
pub limit: Option<UInt>,
#[serde(skip_serializing_if = "Option::is_none")]
#[ruma_api(query)]
pub since: Option<String>,
#[serde(flatten, skip_serializing_if = "ruma_common::serde::is_default")]
#[ruma_api(query)]
pub room_network: RoomNetwork,
}
#[response]
#[derive(Default)]
pub struct Response {
pub chunk: Vec<PublicRoomsChunk>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_batch: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prev_batch: Option<String>,
pub total_room_count_estimate: Option<UInt>,
}
impl Request {
pub fn new() -> Self {
Default::default()
}
}
impl Response {
pub fn new() -> Self {
Default::default()
}
}
}