Borrow strings and identifiers in more endpoints
This commit is contained in:
parent
6f805d2584
commit
a74dddd93b
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
use std::{collections::BTreeMap, fmt::Debug};
|
use std::{collections::BTreeMap, fmt::Debug};
|
||||||
|
|
||||||
|
use ruma_api::Outgoing;
|
||||||
use ruma_events::Algorithm;
|
use ruma_events::Algorithm;
|
||||||
use ruma_identifiers::{DeviceId, DeviceKeyId, UserId};
|
use ruma_identifiers::{DeviceId, DeviceKeyId, UserId};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@ -69,21 +70,24 @@ pub enum OneTimeKey {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// A cross signing key.
|
/// A cross signing key.
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Outgoing, Serialize)]
|
||||||
pub struct CrossSigningKey {
|
pub struct CrossSigningKey<'a> {
|
||||||
/// The ID of the user the key belongs to.
|
/// The ID of the user the key belongs to.
|
||||||
pub user_id: UserId,
|
pub user_id: &'a UserId,
|
||||||
|
|
||||||
/// What the key is used for.
|
/// What the key is used for.
|
||||||
pub usage: Vec<KeyUsage>,
|
pub usage: &'a [KeyUsage],
|
||||||
|
|
||||||
/// The public key. The object must have exactly one property.
|
/// The public key. The object must have exactly one property.
|
||||||
pub keys: BTreeMap<String, String>,
|
pub keys: BTreeMap<String, String>,
|
||||||
|
|
||||||
/// Signatures of the key. Only optional for master key.
|
/// Signatures of the key. Only optional for master key.
|
||||||
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
|
#[serde(skip_serializing_if = "BTreeMap::is_empty")]
|
||||||
pub signatures: BTreeMap<UserId, BTreeMap<String, String>>,
|
pub signatures: BTreeMap<UserId, BTreeMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The usage of a cross signing key.
|
/// The usage of a cross signing key.
|
||||||
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
|
#[derive(Clone, Copy, Debug, Deserialize, Serialize)]
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
pub enum KeyUsage {
|
pub enum KeyUsage {
|
||||||
/// Master key.
|
/// Master key.
|
||||||
|
@ -17,21 +17,21 @@ ruma_api! {
|
|||||||
/// The desired start point of the list.
|
/// The desired start point of the list.
|
||||||
/// Should be the next_batch field from a response to an earlier call to /sync.
|
/// Should be the next_batch field from a response to an earlier call to /sync.
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
pub from: String,
|
pub from: &'a str,
|
||||||
|
|
||||||
/// The desired end point of the list.
|
/// The desired end point of the list.
|
||||||
/// Should be the next_batch field from a recent call to /sync - typically the most recent such call.
|
/// Should be the next_batch field from a recent call to /sync - typically the most recent such call.
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
pub to: String,
|
pub to: &'a str,
|
||||||
}
|
}
|
||||||
|
|
||||||
response: {
|
response: {
|
||||||
/// The Matrix User IDs of all users who updated their device identity keys.
|
/// The Matrix User IDs of all users who updated their device identity keys.
|
||||||
pub changed: Vec<UserId>,
|
pub changed: &'a [UserId],
|
||||||
|
|
||||||
/// The Matrix User IDs of all users who may have left all the end-to-end
|
/// The Matrix User IDs of all users who may have left all the end-to-end
|
||||||
/// encrypted rooms they previously shared with the user.
|
/// encrypted rooms they previously shared with the user.
|
||||||
pub left: Vec<UserId>
|
pub left: &'a [UserId],
|
||||||
}
|
}
|
||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
|
@ -38,7 +38,7 @@ ruma_api! {
|
|||||||
/// ensure its response contains the keys advertised by the notification
|
/// ensure its response contains the keys advertised by the notification
|
||||||
/// in that sync.
|
/// in that sync.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub token: Option<String>,
|
pub token: Option<&'a str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response: {
|
response: {
|
||||||
|
@ -22,17 +22,17 @@ ruma_api! {
|
|||||||
|
|
||||||
/// The user's master key.
|
/// The user's master key.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub master_key: Option<CrossSigningKey>,
|
pub master_key: Option<CrossSigningKey<'a>>,
|
||||||
|
|
||||||
/// The user's self-signing key. Must be signed with the accompanied master, or by the
|
/// The user's self-signing key. Must be signed with the accompanied master, or by the
|
||||||
/// user's most recently uploaded master key if no master key is included in the request.
|
/// user's most recently uploaded master key if no master key is included in the request.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub self_signing_key: Option<CrossSigningKey>,
|
pub self_signing_key: Option<CrossSigningKey<'a>>,
|
||||||
|
|
||||||
/// The user's user-signing key. Must be signed with the accompanied master, or by the
|
/// The user's user-signing key. Must be signed with the accompanied master, or by the
|
||||||
/// user's most recently uploaded master key if no master key is included in the request.
|
/// user's most recently uploaded master key if no master key is included in the request.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub user_signing_key: Option<CrossSigningKey>,
|
pub user_signing_key: Option<CrossSigningKey<'a>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response: {}
|
response: {}
|
||||||
|
@ -26,7 +26,7 @@ ruma_api! {
|
|||||||
|
|
||||||
/// A request identifier unique to the access token used to send the request.
|
/// A request identifier unique to the access token used to send the request.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub txn_id: String,
|
pub txn_id: &'a str,
|
||||||
|
|
||||||
/// A map of users to devices to a content for a message event to be
|
/// A map of users to devices to a content for a message event to be
|
||||||
/// sent to the user's device. Individual message events can be sent
|
/// sent to the user's device. Individual message events can be sent
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
//! [POST /_matrix/client/r0/user_directory/search](https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-user-directory-search)
|
//! [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, UInt};
|
use js_int::{uint, UInt};
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::{ruma_api, Outgoing};
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::Serialize;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata: {
|
metadata: {
|
||||||
@ -17,7 +17,7 @@ ruma_api! {
|
|||||||
|
|
||||||
request: {
|
request: {
|
||||||
/// The term to search for.
|
/// The term to search for.
|
||||||
pub search_term: String,
|
pub search_term: &'a str,
|
||||||
|
|
||||||
/// The maximum number of results to return.
|
/// The maximum number of results to return.
|
||||||
///
|
///
|
||||||
@ -28,7 +28,7 @@ ruma_api! {
|
|||||||
|
|
||||||
response: {
|
response: {
|
||||||
/// Ordered by rank and then whether or not profile info is available.
|
/// Ordered by rank and then whether or not profile info is available.
|
||||||
pub results: Vec<User>,
|
pub results: &'a [User<'a>],
|
||||||
|
|
||||||
/// Indicates if the result list has been truncated by the limit.
|
/// Indicates if the result list has been truncated by the limit.
|
||||||
pub limited: bool,
|
pub limited: bool,
|
||||||
@ -46,16 +46,16 @@ fn is_default_limit(limit: &UInt) -> bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// User data as result of a search.
|
/// User data as result of a search.
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Outgoing, Serialize)]
|
||||||
pub struct User {
|
pub struct User<'a> {
|
||||||
/// The user's matrix user ID.
|
/// The user's matrix user ID.
|
||||||
pub user_id: UserId,
|
pub user_id: &'a UserId,
|
||||||
|
|
||||||
/// The display name of the user, if one exists.
|
/// The display name of the user, if one exists.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub display_name: Option<String>,
|
pub display_name: Option<&'a str>,
|
||||||
|
|
||||||
/// The avatar url, as an MXC, if one exists.
|
/// The avatar url, as an MXC, if one exists.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub avatar_url: Option<String>,
|
pub avatar_url: Option<&'a str>,
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user