From 8650ae00da0886b2b5a27f13efd17d93f9a9ff7e Mon Sep 17 00:00:00 2001 From: timokoesters Date: Thu, 30 Jul 2020 11:10:02 +0200 Subject: [PATCH] Make limit in user_directory/search a smart field --- ruma-client-api/CHANGELOG.md | 5 +++++ .../src/r0/user_directory/search_users.rs | 14 +++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ruma-client-api/CHANGELOG.md b/ruma-client-api/CHANGELOG.md index 135f51e9..e785bfda 100644 --- a/ruma-client-api/CHANGELOG.md +++ b/ruma-client-api/CHANGELOG.md @@ -1,5 +1,10 @@ # [unreleased] +Breaking changes: + +* Update type of `limit` in `r0::user_directory::search_users` from + `Option` to `UInt` + # 0.10.0 Bug fixes: diff --git a/ruma-client-api/src/r0/user_directory/search_users.rs b/ruma-client-api/src/r0/user_directory/search_users.rs index 71f763c8..033bfd4f 100644 --- a/ruma-client-api/src/r0/user_directory/search_users.rs +++ b/ruma-client-api/src/r0/user_directory/search_users.rs @@ -1,6 +1,6 @@ //! [POST /_matrix/client/r0/user_directory/search](https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-user-directory-search) -use js_int::UInt; +use js_int::{uint, UInt}; use ruma_api::ruma_api; use ruma_identifiers::UserId; use serde::{Deserialize, Serialize}; @@ -22,8 +22,8 @@ ruma_api! { /// The maximum number of results to return. /// /// Defaults to 10. - #[serde(skip_serializing_if = "Option::is_none")] - pub limit: Option, + #[serde(default = "default_limit", skip_serializing_if = "is_default_limit")] + pub limit: UInt, } response: { @@ -37,6 +37,14 @@ ruma_api! { error: crate::Error } +fn default_limit() -> UInt { + uint!(10) +} + +fn is_default_limit(limit: &UInt) -> bool { + limit == &default_limit() +} + /// User data as result of a search. #[derive(Clone, Debug, Deserialize, Serialize)] pub struct User {