Move Raw, Outgoing and all macro code from ruma-common to ruma-serde

This commit is contained in:
Jonas Platte 2020-11-28 02:50:32 +01:00
parent ea778a0fdc
commit 5562a23aaa
No known key found for this signature in database
GPG Key ID: 7D261D771D915378
112 changed files with 165 additions and 173 deletions

View File

@ -160,7 +160,7 @@ pub fn expand_all(api: Api) -> syn::Result<TokenStream> {
quote! {
let request_body: <
RequestBody #body_lifetimes
as #ruma_api_import::exports::ruma_common::Outgoing
as #ruma_api_import::exports::ruma_serde::Outgoing
>::Incoming =
#ruma_api_import::try_deserialize!(
request,
@ -195,7 +195,7 @@ pub fn expand_all(api: Api) -> syn::Result<TokenStream> {
quote! {
let response_body: <
ResponseBody
as #ruma_api_import::exports::ruma_common::Outgoing
as #ruma_api_import::exports::ruma_serde::Outgoing
>::Incoming =
#ruma_api_import::try_deserialize!(
response,
@ -332,7 +332,7 @@ pub fn expand_all(api: Api) -> syn::Result<TokenStream> {
{
type EndpointError = #error;
type IncomingResponse =
<Response as #ruma_api_import::exports::ruma_common::Outgoing>::Incoming;
<Response as #ruma_api_import::exports::ruma_serde::Outgoing>::Incoming;
#[doc = #metadata_doc]
const METADATA: #ruma_api_import::Metadata = self::METADATA;

View File

@ -442,7 +442,7 @@ impl Parse for Request {
impl ToTokens for Request {
fn to_tokens(&self, tokens: &mut TokenStream) {
let ruma_api = &self.ruma_api_import;
let ruma_common = quote! { #ruma_api::exports::ruma_common };
let ruma_serde = quote! { #ruma_api::exports::ruma_serde };
let serde = quote! { #ruma_api::exports::serde };
let struct_attributes = &self.attributes;
@ -489,7 +489,7 @@ impl ToTokens for Request {
/// Data in the request body.
#[derive(
Debug,
#ruma_common::Outgoing,
#ruma_serde::Outgoing,
#serde::Serialize,
#derive_deserialize
)]
@ -509,7 +509,7 @@ impl ToTokens for Request {
/// Data in the request's query string.
#[derive(
Debug,
#ruma_common::Outgoing,
#ruma_serde::Outgoing,
#serde::Serialize,
#derive_deserialize
)]
@ -527,7 +527,7 @@ impl ToTokens for Request {
/// Data in the request's query string.
#[derive(
Debug,
#ruma_common::Outgoing,
#ruma_serde::Outgoing,
#serde::Serialize,
#derive_deserialize
)]
@ -540,7 +540,7 @@ impl ToTokens for Request {
};
let request = quote! {
#[derive(Debug, Clone, #ruma_common::Outgoing)]
#[derive(Debug, Clone, #ruma_serde::Outgoing)]
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
#[incoming_derive(!Deserialize)]
#( #struct_attributes )*

View File

@ -312,7 +312,7 @@ impl Parse for Response {
impl ToTokens for Response {
fn to_tokens(&self, tokens: &mut TokenStream) {
let ruma_api = &self.ruma_api_import;
let ruma_common = quote! { #ruma_api::exports::ruma_common };
let ruma_serde = quote! { #ruma_api::exports::ruma_serde };
let serde = quote! { #ruma_api::exports::serde };
let struct_attributes = &self.attributes;
@ -342,12 +342,12 @@ impl ToTokens for Response {
let response_body_struct = quote! {
/// Data in the response body.
#[derive(Debug, #ruma_common::Outgoing, #serde::Deserialize, #serde::Serialize)]
#[derive(Debug, #ruma_serde::Outgoing, #serde::Deserialize, #serde::Serialize)]
struct ResponseBody #def
};
let response = quote! {
#[derive(Debug, Clone, #ruma_common::Outgoing)]
#[derive(Debug, Clone, #ruma_serde::Outgoing)]
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
#[incoming_derive(!Deserialize)]
#( #struct_attributes )*

View File

@ -278,7 +278,6 @@ pub(crate) fn build_query_string(request: &Request, ruma_api: &TokenStream) -> T
/// Deserialize the query string.
pub(crate) fn extract_request_query(request: &Request, ruma_api: &TokenStream) -> TokenStream {
let ruma_common = quote! { #ruma_api::exports::ruma_common };
let ruma_serde = quote! { #ruma_api::exports::ruma_serde };
if request.query_map_field().is_some() {
@ -292,10 +291,7 @@ pub(crate) fn extract_request_query(request: &Request, ruma_api: &TokenStream) -
}
} else if request.has_query_fields() {
quote! {
let request_query: <
RequestQuery
as #ruma_common::Outgoing
>::Incoming =
let request_query: <RequestQuery as #ruma_serde::Outgoing>::Incoming =
#ruma_api::try_deserialize!(
request,
#ruma_serde::urlencoded::from_str(

View File

@ -19,7 +19,6 @@ edition = "2018"
http = "0.2.1"
percent-encoding = "2.1.0"
ruma-api-macros = { version = "=0.17.0-alpha.1", path = "../ruma-api-macros" }
ruma-common = { version = "0.2.0", path = "../ruma-common" }
ruma-identifiers = { version = "0.17.4", path = "../ruma-identifiers" }
ruma-serde = { version = "0.2.3", path = "../ruma-serde" }
serde = { version = "1.0.114", features = ["derive"] }
@ -27,6 +26,5 @@ serde_json = "1.0.57"
thiserror = "1.0.20"
[dev-dependencies]
ruma-common = { version = "0.2.0", path = "../ruma-common" }
ruma-events = { version = "=0.22.0-alpha.1", path = "../ruma-events" }
trybuild = "1.0.31"

View File

@ -199,7 +199,7 @@ use http::Method;
/// fallible deserialization, you can use the `#[wrap_incoming]` attribute. For details, see
/// the documentation for [the derive macro](derive.Outgoing.html).
// TODO: Explain the concept of fallible deserialization before jumping to
// `ruma_common::Outgoing`
// `ruma_serde::Outgoing`
pub use ruma_api_macros::ruma_api;
pub mod error;
@ -209,7 +209,6 @@ pub mod error;
pub mod exports {
pub use http;
pub use percent_encoding;
pub use ruma_common;
pub use ruma_serde;
pub use serde;
pub use serde_json;

View File

@ -10,8 +10,8 @@ use ruma_api::{
},
AuthScheme, IncomingRequest, Metadata, OutgoingRequest,
};
use ruma_common::Outgoing;
use ruma_identifiers::{RoomAliasId, RoomId};
use ruma_serde::Outgoing;
use serde::{Deserialize, Serialize};
/// A request to create a new room alias.

View File

@ -1,5 +1,5 @@
#[allow(unused)]
#[derive(Copy, Clone, Debug, ruma_common::Outgoing, serde::Serialize)]
#[derive(Copy, Clone, Debug, ruma_serde::Outgoing, serde::Serialize)]
pub struct OtherThing<'t> {
pub some: &'t str,
pub t: &'t [u8],

View File

@ -1,7 +1,7 @@
pub mod some_endpoint {
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::{tag::TagEvent, AnyRoomEvent};
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -1,5 +1,5 @@
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_serde::Raw;
use ruma_events::{tag::TagEvent, AnyRoomEvent};
ruma_api! {

View File

@ -16,6 +16,7 @@ ruma-api = { version = "=0.17.0-alpha.1", path = "../ruma-api" }
ruma-common = { version = "0.2.0", path = "../ruma-common" }
ruma-events = { version = "=0.22.0-alpha.1", path = "../ruma-events" }
ruma-identifiers = { version = "0.17.4", path = "../ruma-identifiers" }
ruma-serde = { version = "0.2.3", path = "../ruma-serde" }
serde = { version = "1.0.114", features = ["derive"] }
serde_json = "1.0.57"

View File

@ -1,8 +1,8 @@
//! [PUT /_matrix/app/v1/transactions/{txnId}](https://matrix.org/docs/spec/application_service/r0.1.2#put-matrix-app-v1-transactions-txnid)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::AnyEvent;
use ruma_serde::Raw;
ruma_api! {
metadata: {
@ -46,8 +46,8 @@ impl Response {
#[cfg(test)]
mod tests {
use ruma_api::{exports::http, OutgoingRequest};
use ruma_common::Raw;
use ruma_events::AnyEvent;
use ruma_serde::Raw;
use serde_json::json;
use super::Request;

View File

@ -7,7 +7,7 @@ use std::{
};
use js_int::UInt;
use ruma_common::{DeserializeFromCowStr, FromString};
use ruma_serde::{DeserializeFromCowStr, FromString};
use serde::{
de::{self, Deserialize, Deserializer, MapAccess, Visitor},
ser::{self, Serialize, SerializeMap, Serializer},

View File

@ -18,7 +18,7 @@ pub mod unbind_3pid;
pub mod whoami;
use ruma_common::Outgoing;
use ruma_serde::Outgoing;
use serde::{Deserialize, Serialize};
/// Additional authentication information for requestToken endpoints.

View File

@ -3,8 +3,8 @@
use std::time::Duration;
use ruma_api::ruma_api;
use ruma_common::StringEnum;
use ruma_identifiers::{ServerNameBox, UserId};
use ruma_serde::StringEnum;
ruma_api! {
metadata: {

View File

@ -2,8 +2,8 @@
use maplit::btreemap;
use ruma_api::ruma_api;
use ruma_common::StringEnum;
use ruma_identifiers::RoomVersionId;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use serde_json::Value as JsonValue;
use std::collections::BTreeMap;

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/client/r0/user/{userId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-user-userid-account-data-type)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::AnyBasicEvent;
use ruma_identifiers::UserId;
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/client/r0/user/{userId}/rooms/{roomId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-user-userid-rooms-roomid-account-data-type)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::AnyBasicEvent;
use ruma_identifiers::{RoomId, UserId};
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -2,9 +2,9 @@
use js_int::{uint, UInt};
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::{AnyRoomEvent, AnyStateEvent};
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Raw;
use crate::r0::filter::{IncomingRoomEventFilter, RoomEventFilter};

View File

@ -10,8 +10,8 @@ pub use lazy_load::LazyLoadOptions;
pub use url::UrlFilter;
use js_int::UInt;
use ruma_common::{Outgoing, StringEnum};
use ruma_identifiers::{RoomId, UserId};
use ruma_serde::{Outgoing, StringEnum};
use serde::Serialize;
/// Format to use for returned events.

View File

@ -14,8 +14,9 @@ pub mod unban_user;
use std::collections::BTreeMap;
use ruma_common::{thirdparty::Medium, Outgoing};
use ruma_common::thirdparty::Medium;
use ruma_identifiers::{ServerNameBox, ServerSigningKeyId};
use ruma_serde::Outgoing;
use serde::Serialize;
/// A signature of an `m.third_party_invite` token to prove that this user owns a third party

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/client/r0/rooms/{roomId}/members](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-members)
use ruma_api::ruma_api;
use ruma_common::{Raw, StringEnum};
use ruma_events::room::member::MemberEvent;
use ruma_identifiers::RoomId;
use ruma_serde::{Raw, StringEnum};
ruma_api! {
metadata: {

View File

@ -8,8 +8,8 @@
//! [invite-by-3pid]: https://matrix.org/docs/spec/client_server/r0.6.0#id101
use ruma_api::ruma_api;
use ruma_common::Outgoing;
use ruma_identifiers::{RoomId, UserId};
use ruma_serde::Outgoing;
use serde::Serialize;
use super::{IncomingInvite3pid, Invite3pid};

View File

@ -2,9 +2,9 @@
use js_int::{uint, UInt};
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::{AnyRoomEvent, AnyStateEvent};
use ruma_identifiers::RoomId;
use ruma_serde::Raw;
use serde::{Deserialize, Serialize};
use crate::r0::filter::{IncomingRoomEventFilter, RoomEventFilter};

View File

@ -9,9 +9,9 @@ use ruma_api::{
},
AuthScheme, EndpointError, Metadata,
};
use ruma_common::Outgoing;
use ruma_events::{AnyMessageEventContent, EventContent as _};
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Outgoing;
use serde::{Deserialize, Serialize};
use serde_json::value::RawValue as RawJsonValue;

View File

@ -1,6 +1,7 @@
//! Endpoints for push notifications.
use ruma_common::{push::PusherData, StringEnum};
use ruma_common::push::PusherData;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
pub mod delete_pushrule;

View File

@ -4,9 +4,10 @@ use std::time::SystemTime;
use js_int::UInt;
use ruma_api::ruma_api;
use ruma_common::{push::Action, Raw};
use ruma_common::push::Action;
use ruma_events::AnyEvent;
use ruma_identifiers::RoomId;
use ruma_serde::Raw;
use serde::{Deserialize, Serialize};
ruma_api! {

View File

@ -1,8 +1,8 @@
//! [POST /_matrix/client/r0/rooms/{roomId}/receipt/{receiptType}/{eventId}](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-receipt-receipttype-eventid)
use ruma_api::ruma_api;
use ruma_common::{AsRefStr, DisplayAsRefStr, FromString};
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::{AsRefStr, DisplayAsRefStr, FromString};
ruma_api! {
metadata: {

View File

@ -5,7 +5,7 @@ pub mod get_room_event;
pub mod report_content;
pub mod upgrade_room;
use ruma_common::StringEnum;
use ruma_serde::StringEnum;
/// Whether or not a newly created room will be listed in the room directory.
#[derive(Clone, Debug, PartialEq, Eq, StringEnum)]

View File

@ -2,7 +2,6 @@
use assign::assign;
use ruma_api::ruma_api;
use ruma_common::{Raw, StringEnum};
use ruma_events::{
room::{
create::{CreateEventContent, PreviousRoom},
@ -11,6 +10,7 @@ use ruma_events::{
AnyInitialStateEvent,
};
use ruma_identifiers::{RoomId, RoomVersionId, UserId};
use ruma_serde::{Raw, StringEnum};
use serde::{Deserialize, Serialize};
use super::Visibility;

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/client/r0/rooms/{roomId}/event/{eventId}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-event-eventid)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::AnyRoomEvent;
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -4,9 +4,9 @@ use std::collections::BTreeMap;
use js_int::{uint, UInt};
use ruma_api::ruma_api;
use ruma_common::{Outgoing, Raw, StringEnum};
use ruma_events::{AnyRoomEvent, AnyStateEvent};
use ruma_identifiers::{EventId, RoomId, UserId};
use ruma_serde::{Outgoing, Raw, StringEnum};
use serde::{Deserialize, Serialize};
use crate::r0::filter::{IncomingRoomEventFilter, RoomEventFilter};

View File

@ -1,8 +1,9 @@
//! [POST /_matrix/client/r0/login](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-login)
use ruma_api::ruma_api;
use ruma_common::{thirdparty::Medium, Outgoing};
use ruma_common::thirdparty::Medium;
use ruma_identifiers::{DeviceId, DeviceIdBox, ServerNameBox, UserId};
use ruma_serde::Outgoing;
use serde::{Deserialize, Serialize};
ruma_api! {

View File

@ -1,7 +1,8 @@
//! Helper module for the Serialize / Deserialize impl's for the User struct
//! in the parent module.
use ruma_common::{thirdparty::Medium, Outgoing};
use ruma_common::thirdparty::Medium;
use ruma_serde::Outgoing;
use serde::Serialize;
// The following three structs could just be used in place of the one in the parent module, but

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/client/r0/rooms/{roomId}/state](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-state)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::AnyStateEvent;
use ruma_identifiers::RoomId;
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -9,9 +9,9 @@ use ruma_api::{
},
AuthScheme, EndpointError, Metadata,
};
use ruma_common::Outgoing;
use ruma_events::{AnyStateEventContent, EventContent as _};
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Outgoing;
use serde::{Deserialize, Serialize};
use serde_json::value::RawValue as RawJsonValue;

View File

@ -9,9 +9,9 @@ use ruma_api::{
},
AuthScheme, EndpointError, Metadata,
};
use ruma_common::Outgoing;
use ruma_events::{AnyStateEventContent, EventContent as _};
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Outgoing;
use serde::{Deserialize, Serialize};
use serde_json::value::RawValue as RawJsonValue;

View File

@ -4,12 +4,13 @@ use std::{collections::BTreeMap, time::Duration};
use js_int::UInt;
use ruma_api::ruma_api;
use ruma_common::{presence::PresenceState, Outgoing, Raw};
use ruma_common::presence::PresenceState;
use ruma_events::{
presence::PresenceEvent, AnyBasicEvent, AnyStrippedStateEvent, AnySyncEphemeralRoomEvent,
AnySyncRoomEvent, AnySyncStateEvent, AnyToDeviceEvent,
};
use ruma_identifiers::{DeviceKeyAlgorithm, RoomId, UserId};
use ruma_serde::{Outgoing, Raw};
use serde::{Deserialize, Serialize};
use crate::r0::filter::{FilterDefinition, IncomingFilterDefinition};

View File

@ -6,7 +6,7 @@ use std::{
};
use ruma_api::{error::ResponseDeserializationError, EndpointError};
use ruma_common::Outgoing;
use ruma_serde::Outgoing;
use serde::{Deserialize, Serialize};
use serde_json::{
from_slice as from_json_slice, to_vec as to_json_vec, value::RawValue as RawJsonValue,

View File

@ -13,7 +13,6 @@ edition = "2018"
[dependencies]
js_int = { version = "0.1.9", features = ["serde"] }
maplit = "1.0.2"
ruma-common-macros = { version = "=0.2.0", path = "../ruma-common-macros" }
ruma-identifiers = { version = "0.17.4", path = "../ruma-identifiers" }
ruma-serde = { version = "0.2.3", path = "../ruma-serde" }
serde = { version = "1.0.114", features = ["derive"] }

View File

@ -4,6 +4,7 @@ use std::fmt;
use js_int::UInt;
use ruma_identifiers::{RoomAliasId, RoomId};
use ruma_serde::Outgoing;
use serde::{
de::{Error, MapAccess, Visitor},
ser::SerializeStruct,
@ -11,8 +12,6 @@ use serde::{
};
use serde_json::Value as JsonValue;
use crate::Outgoing;
/// A chunk of a room list response, describing one room.
///
/// To create an instance of this type, first create a `PublicRoomsChunkInit` and convert it via

View File

@ -6,33 +6,4 @@ pub mod directory;
pub mod encryption;
pub mod presence;
pub mod push;
mod raw;
pub mod thirdparty;
pub use ruma_common_macros::*;
pub use self::raw::Raw;
/// A type that can be sent to another party that understands the matrix protocol. If any of the
/// fields of `Self` don't implement serde's `Deserialize`, you can derive this trait to generate a
/// corresponding 'Incoming' type that supports deserialization. This is useful for things like
/// ruma_events' `EventResult` type. For more details, see the [derive macro's documentation][doc].
///
/// [doc]: derive.Outgoing.html
// TODO: Better explain how this trait relates to serde's traits
pub trait Outgoing {
/// The 'Incoming' variant of `Self`.
type Incoming;
}
// Hack to allow both ruma-common itself and external crates (or tests) to use procedural macros
// that expect `ruma_common` to exist in the prelude.
extern crate self as ruma_common;
/// This module is used to support the generated code from ruma-api-macros.
/// It is not considered part of ruma-common's public API.
#[doc(hidden)]
pub mod exports {
pub use ruma_serde;
pub use serde;
}

View File

@ -2,7 +2,7 @@
//!
//! [presence]: https://matrix.org/docs/spec/client_server/r0.6.1#id62
use crate::StringEnum;
use ruma_serde::StringEnum;
/// A description of a user's connectivity and availability for chat.
#[derive(Clone, Debug, PartialEq, Eq, StringEnum)]

View File

@ -36,7 +36,7 @@
use std::collections::btree_set::{BTreeSet, IntoIter as BTreeSetIter};
use ruma_common::StringEnum;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
mod action;

View File

@ -4,8 +4,8 @@
use std::collections::BTreeMap;
use ruma_common::StringEnum;
use ruma_identifiers::{RoomAliasId, UserId};
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};

View File

@ -8,10 +8,10 @@
#[cfg(feature = "criterion")]
use criterion::{criterion_group, criterion_main, Criterion};
use ruma_common::Raw;
use ruma_events::{
room::power_levels::PowerLevelsEventContent, AnyEvent, AnyRoomEvent, AnyStateEvent, StateEvent,
};
use ruma_serde::Raw;
use serde_json::json;
fn power_levels() -> serde_json::Value {

View File

@ -2,7 +2,7 @@
//!
//! This module also contains types shared by events in its child namespaces.
use ruma_common::StringEnum;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
pub mod answer;

View File

@ -1,8 +1,8 @@
//! Types for the *m.call.hangup* event.
use js_int::UInt;
use ruma_common::StringEnum;
use ruma_events_macros::MessageEventContent;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::MessageEvent;

View File

@ -38,8 +38,8 @@ impl DerefMut for DirectEventContent {
mod tests {
use std::{collections::BTreeMap, convert::TryFrom};
use ruma_common::Raw;
use ruma_identifiers::{RoomId, ServerName, UserId};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::{DirectEvent, DirectEventContent};

View File

@ -41,7 +41,7 @@ impl DerefMut for DummyEventContent {
#[cfg(test)]
mod tests {
use super::{DummyEvent, DummyEventContent, Empty};
use ruma_common::Raw;
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};

View File

@ -1,4 +1,4 @@
use ruma_common::StringEnum;
use ruma_serde::StringEnum;
/// The type of an event.
///

View File

@ -21,8 +21,8 @@ pub struct IgnoredUserListEventContent {
#[cfg(test)]
mod tests {
use matches::assert_matches;
use ruma_common::Raw;
use ruma_identifiers::user_id;
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::IgnoredUserListEventContent;

View File

@ -2,7 +2,7 @@
//!
//! This module also contains types shared by events in its child namespaces.
use ruma_common::StringEnum;
use ruma_serde::StringEnum;
pub mod accept;
pub mod cancel;

View File

@ -138,7 +138,7 @@ mod tests {
AcceptEvent, AcceptEventContent, AcceptMethod, CustomContent, HashAlgorithm,
KeyAgreementProtocol, MSasV1Content, MessageAuthenticationCode, ShortAuthenticationString,
};
use ruma_common::Raw;
use ruma_serde::Raw;
#[test]
fn serialization() {

View File

@ -1,7 +1,7 @@
//! Types for the *m.key.verification.cancel* event.
use ruma_common::StringEnum;
use ruma_events_macros::BasicEventContent;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::BasicEvent;

View File

@ -188,7 +188,7 @@ mod tests {
MessageAuthenticationCode, ShortAuthenticationString, StartEvent, StartEventContent,
StartMethod,
};
use ruma_common::Raw;
use ruma_serde::Raw;
#[test]
fn invalid_m_sas_v1_content_missing_required_key_agreement_protocols() {

View File

@ -119,8 +119,8 @@
use std::fmt::Debug;
use js_int::Int;
use ruma_common::Raw;
use ruma_identifiers::{EventEncryptionAlgorithm, RoomId};
use ruma_serde::Raw;
use serde::{
de::{self, IgnoredAny},
Deserialize, Serialize,

View File

@ -1,6 +1,6 @@
//! Modules and types for events in the *m.policy.rule* namespace.
use ruma_common::StringEnum;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
pub mod room;

View File

@ -17,8 +17,8 @@ pub struct RoomEventContent(pub PolicyRuleEventContent);
mod tests {
use std::time::{Duration, UNIX_EPOCH};
use ruma_common::Raw;
use ruma_identifiers::{event_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::{RoomEvent, RoomEventContent};

View File

@ -41,8 +41,8 @@ impl CanonicalAliasEventContent {
mod tests {
use std::time::{Duration, UNIX_EPOCH};
use ruma_common::Raw;
use ruma_identifiers::{event_id, room_alias_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::CanonicalAliasEventContent;

View File

@ -69,8 +69,8 @@ fn default_room_version_id() -> RoomVersionId {
#[cfg(test)]
mod tests {
use matches::assert_matches;
use ruma_common::Raw;
use ruma_identifiers::{user_id, RoomVersionId};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::CreateEventContent;

View File

@ -119,7 +119,7 @@ mod tests {
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::{EncryptedEventContent, MegolmV1AesSha2Content};
use ruma_common::Raw;
use ruma_serde::Raw;
#[test]
fn serialization() {

View File

@ -1,7 +1,7 @@
//! Types for the *m.room.guest_access* event.
use ruma_common::StringEnum;
use ruma_events_macros::StateEventContent;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::StateEvent;

View File

@ -1,7 +1,7 @@
//! Types for the *m.room.history_visibility* event.
use ruma_common::StringEnum;
use ruma_events_macros::StateEventContent;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::StateEvent;

View File

@ -1,7 +1,7 @@
//! Types for the *m.room.join_rules* event.
use ruma_common::StringEnum;
use ruma_events_macros::StateEventContent;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::StateEvent;

View File

@ -2,9 +2,9 @@
use std::collections::BTreeMap;
use ruma_common::StringEnum;
use ruma_events_macros::StateEventContent;
use ruma_identifiers::{ServerNameBox, ServerSigningKeyId, UserId};
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::{StateEvent, StrippedStateEvent, SyncStateEvent};
@ -251,8 +251,8 @@ mod tests {
use maplit::btreemap;
use matches::assert_matches;
use ruma_common::Raw;
use ruma_identifiers::{server_key_id, server_name};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json};
use super::{MemberEventContent, MembershipState, SignedContent, ThirdPartyInvite};

View File

@ -1,8 +1,8 @@
//! Types for the *m.room.message* event.
use js_int::UInt;
use ruma_common::StringEnum;
use ruma_events_macros::MessageEventContent;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use serde_json::Value as JsonValue;
@ -541,8 +541,8 @@ mod tests {
use std::time::{Duration, UNIX_EPOCH};
use matches::assert_matches;
use ruma_common::Raw;
use ruma_identifiers::{event_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use super::{

View File

@ -1,8 +1,8 @@
//! Types for the *m.room.message.feedback* event.
use ruma_common::StringEnum;
use ruma_events_macros::MessageEventContent;
use ruma_identifiers::EventId;
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::MessageEvent;

View File

@ -63,8 +63,8 @@ mod tests {
use js_int::Int;
use matches::assert_matches;
use ruma_common::Raw;
use ruma_identifiers::{event_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use crate::{StateEvent, Unsigned};

View File

@ -32,8 +32,8 @@ mod tests {
time::{Duration, UNIX_EPOCH},
};
use ruma_common::Raw;
use ruma_identifiers::{EventId, RoomId, ServerName, UserId};
use ruma_serde::Raw;
use serde_json::to_string;
use super::PinnedEventsEventContent;

View File

@ -44,7 +44,7 @@ mod tests {
use super::ServerAclEventContent;
use crate::StateEvent;
use ruma_common::Raw;
use ruma_serde::Raw;
#[test]
fn default_values() {

View File

@ -1,8 +1,8 @@
//! Types for the *m.room_key_request* event.
use ruma_common::StringEnum;
use ruma_events_macros::BasicEventContent;
use ruma_identifiers::{DeviceIdBox, EventEncryptionAlgorithm, RoomId};
use ruma_serde::StringEnum;
use serde::{Deserialize, Serialize};
use crate::BasicEvent;

View File

@ -1,13 +1,13 @@
use std::time::{Duration, UNIX_EPOCH};
use matches::assert_matches;
use ruma_common::Raw;
use ruma_events::{
custom::CustomEventContent, AnyMessageEvent, AnyStateEvent, AnyStateEventContent,
AnySyncMessageEvent, AnySyncRoomEvent, MessageEvent, StateEvent, SyncMessageEvent,
SyncStateEvent, Unsigned,
};
use ruma_identifiers::{event_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{
from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue,
};

View File

@ -2,8 +2,8 @@ use std::time::{Duration, UNIX_EPOCH};
use maplit::btreemap;
use matches::assert_matches;
use ruma_common::Raw;
use ruma_identifiers::{event_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
use ruma_events::{

View File

@ -2,7 +2,6 @@ use std::time::{Duration, UNIX_EPOCH};
use js_int::{uint, UInt};
use matches::assert_matches;
use ruma_common::Raw;
use ruma_events::{
call::{answer::AnswerEventContent, SessionDescription, SessionDescriptionType},
room::{ImageInfo, ThumbnailInfo},
@ -10,6 +9,7 @@ use ruma_events::{
AnyMessageEventContent, AnySyncMessageEvent, MessageEvent, RawExt, Unsigned,
};
use ruma_identifiers::{event_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
#[test]

View File

@ -1,7 +1,6 @@
use std::time::{Duration, UNIX_EPOCH};
use matches::assert_matches;
use ruma_common::Raw;
use ruma_events::{
custom::RedactedCustomEventContent,
room::{
@ -16,6 +15,7 @@ use ruma_events::{
Unsigned,
};
use ruma_identifiers::{event_id, room_id, user_id, RoomVersionId};
use ruma_serde::Raw;
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
fn sync_unsigned() -> RedactedSyncUnsigned {

View File

@ -1,12 +1,12 @@
use std::time::{Duration, UNIX_EPOCH};
use matches::assert_matches;
use ruma_common::Raw;
use ruma_events::{
room::redaction::{RedactionEvent, RedactionEventContent},
AnyMessageEvent, Unsigned,
};
use ruma_identifiers::{event_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{
from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue,
};

View File

@ -2,13 +2,13 @@ use std::time::{Duration, UNIX_EPOCH};
use js_int::UInt;
use matches::assert_matches;
use ruma_common::Raw;
use ruma_events::{
room::{aliases::AliasesEventContent, avatar::AvatarEventContent, ImageInfo, ThumbnailInfo},
AnyRoomEvent, AnyStateEvent, AnyStateEventContent, AnySyncStateEvent, RawExt, StateEvent,
SyncStateEvent, Unsigned,
};
use ruma_identifiers::{event_id, room_alias_id, room_id, user_id};
use ruma_serde::Raw;
use serde_json::{
from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue,
};

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/federation/v1/event_auth/{roomId}/{eventId}](https://matrix.org/docs/spec/server_server/r0.1.4#get-matrix-federation-v1-event-auth-roomid-eventid)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -2,9 +2,9 @@
use js_int::{uint, UInt};
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/federation/v1/state/{roomId}](https://matrix.org/docs/spec/server_server/r0.1.4#get-matrix-federation-v1-state-roomid)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -3,8 +3,8 @@
pub mod v1;
pub mod v2;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_serde::Raw;
use serde::{Deserialize, Serialize};
/// Full state of the room.

View File

@ -1,9 +1,9 @@
//! [PUT /_matrix/federation/v1/send_join/{roomId}/{eventId}](https://matrix.org/docs/spec/server_server/r0.1.3#put-matrix-federation-v1-send-join-roomid-eventid)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Raw;
use super::RoomState;

View File

@ -1,9 +1,9 @@
//! [PUT /_matrix/federation/v2/send_join/{roomId}/{eventId}](https://matrix.org/docs/spec/server_server/r0.1.4#put-matrix-federation-v2-send-join-roomid-eventid)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_identifiers::{EventId, RoomId};
use ruma_serde::Raw;
use super::RoomState;

View File

@ -1,9 +1,9 @@
//! [GET /_matrix/federation/v1/make_join/{roomId}/{userId}](https://matrix.org/docs/spec/server_server/r0.1.3#get-matrix-federation-v1-make-join-roomid-userid)
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_identifiers::{RoomId, RoomVersionId, UserId};
use ruma_serde::Raw;
ruma_api! {
metadata: {

View File

@ -4,10 +4,9 @@ use std::time::SystemTime;
use js_int::UInt;
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::{room::member::MemberEventContent, EventType};
use ruma_identifiers::{EventId, RoomId, ServerName, UserId};
use ruma_serde::empty::Empty;
use ruma_serde::{empty::Empty, Raw};
ruma_api! {
metadata: {

View File

@ -4,10 +4,9 @@ use std::time::SystemTime;
use js_int::UInt;
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::{room::member::MemberEventContent, EventType};
use ruma_identifiers::{EventId, RoomId, ServerName, UserId};
use ruma_serde::empty::Empty;
use ruma_serde::{empty::Empty, Raw};
ruma_api! {
metadata: {

View File

@ -3,9 +3,9 @@
use std::time::SystemTime;
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::{room::member::MemberEventContent, EventType};
use ruma_identifiers::{RoomId, RoomVersionId, ServerNameBox, UserId};
use ruma_serde::Raw;
use serde::{Deserialize, Serialize};
ruma_api! {

View File

@ -1,8 +1,8 @@
//! [GET /_matrix/federation/v1/query/profile](https://matrix.org/docs/spec/server_server/r0.1.4#get-matrix-federation-v1-query-profile)
use ruma_api::ruma_api;
use ruma_common::StringEnum;
use ruma_identifiers::UserId;
use ruma_serde::StringEnum;
ruma_api! {
metadata: {

View File

@ -3,9 +3,9 @@
use std::{collections::BTreeMap, time::SystemTime};
use ruma_api::ruma_api;
use ruma_common::Raw;
use ruma_events::pdu::Pdu;
use ruma_identifiers::{EventId, ServerName};
use ruma_serde::Raw;
use serde::{Deserialize, Serialize};
use serde_json::Value as JsonValue;

View File

@ -26,7 +26,6 @@ serde = ["serde1", "ruma-identifiers-validation/serde"]
[dependencies]
either = { version = "1.5.3", optional = true }
rand = { version = "0.7.3", optional = true }
ruma-common-macros = { version = "0.2.0", path = "../ruma-common-macros" }
ruma-identifiers-macros = { version = "=0.17.4", path = "../ruma-identifiers-macros" }
ruma-identifiers-validation = { version = "0.1.1", path = "../ruma-identifiers-validation", default-features = false }
ruma-serde = { version = "0.2.3", path = "../ruma-serde" }

View File

@ -2,7 +2,7 @@
use std::{cmp::Ordering, convert::TryFrom, str::FromStr};
use ruma_common_macros::DisplayAsRefStr;
use ruma_serde::DisplayAsRefStr;
#[cfg(feature = "serde")]
use serde::{Deserialize, Deserializer, Serialize, Serializer};

View File

@ -2,12 +2,10 @@
use js_int::UInt;
use ruma_api::ruma_api;
use ruma_common::{
push::{PusherData, Tweak},
Outgoing, StringEnum,
};
use ruma_common::push::{PusherData, Tweak};
use ruma_events::EventType;
use ruma_identifiers::{EventId, RoomAliasId, RoomId, UserId};
use ruma_serde::{Outgoing, StringEnum};
use serde::{Deserialize, Serialize};
use serde_json::value::RawValue as RawJsonValue;
use std::time::SystemTime;

View File

@ -1,11 +1,11 @@
[package]
authors = ["Jonas Platte <jplatte@posteo.de>",]
categories = ["api-bindings", "web-programming"]
description = "Procedural macros for ruma-common."
description = "Procedural macros for ruma-serde."
homepage = "https://www.ruma.io/"
keywords = ["matrix", "chat", "messaging", "ruma"]
license = "MIT"
name = "ruma-common-macros"
name = "ruma-serde-macros"
readme = "README.md"
repository = "https://github.com/ruma/ruma"
version = "0.2.0"

View File

@ -1,20 +1,20 @@
use proc_macro2::{Ident, TokenStream};
use quote::quote;
use crate::util::import_ruma_common;
use crate::util::import_ruma_serde;
pub fn expand_deserialize_from_cow_str(ident: &Ident) -> syn::Result<TokenStream> {
let ruma_common = import_ruma_common();
let ruma_serde = import_ruma_serde();
Ok(quote! {
impl<'de> #ruma_common::exports::serde::de::Deserialize<'de> for #ident {
impl<'de> #ruma_serde::exports::serde::de::Deserialize<'de> for #ident {
fn deserialize<D>(deserializer: D) -> ::std::result::Result<Self, D::Error>
where
D: #ruma_common::exports::serde::de::Deserializer<'de>,
D: #ruma_serde::exports::serde::de::Deserializer<'de>,
{
type CowStr<'a> = ::std::borrow::Cow<'a, ::std::primitive::str>;
let cow = #ruma_common::exports::ruma_serde::deserialize_cow_str(deserializer)?;
let cow = #ruma_serde::deserialize_cow_str(deserializer)?;
Ok(::std::convert::From::<CowStr<'_>>::from(cow))
}
}

Some files were not shown because too many files have changed in this diff Show More