From bdcf07be878100d6cc631615f027e4ca63c5d2f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Commaille?= <76261501+zecakeh@users.noreply.github.com> Date: Thu, 10 Mar 2022 12:11:00 +0100 Subject: [PATCH] common: Merge ruma-serde into ruma-common --- crates/ruma-appservice-api/Cargo.toml | 1 - .../src/event/push_events.rs | 3 +- crates/ruma-client-api/Cargo.toml | 1 - crates/ruma-client-api/src/account.rs | 2 +- .../src/account/change_password.rs | 2 +- .../ruma-client-api/src/account/register.rs | 4 +- ...request_3pid_management_token_via_email.rs | 2 +- ...equest_3pid_management_token_via_msisdn.rs | 2 +- .../src/account/request_openid_token.rs | 2 +- ...request_password_change_token_via_email.rs | 2 +- ...equest_password_change_token_via_msisdn.rs | 2 +- .../request_registration_token_via_email.rs | 2 +- .../request_registration_token_via_msisdn.rs | 2 +- crates/ruma-client-api/src/account/whoami.rs | 2 +- crates/ruma-client-api/src/backup.rs | 6 +- .../src/backup/add_backup_keys_for_room.rs | 3 +- .../src/backup/add_backup_keys_for_session.rs | 3 +- .../src/backup/create_backup_version.rs | 3 +- .../src/backup/get_backup_info.rs | 3 +- .../src/backup/get_backup_keys_for_room.rs | 3 +- .../src/backup/get_backup_keys_for_session.rs | 3 +- .../src/backup/get_latest_backup_info.rs | 3 +- .../src/backup/update_backup_version.rs | 3 +- crates/ruma-client-api/src/capabilities.rs | 3 +- .../src/config/get_global_account_data.rs | 5 +- .../src/config/get_room_account_data.rs | 5 +- .../src/config/set_global_account_data.rs | 2 +- .../src/config/set_room_account_data.rs | 2 +- .../src/context/get_context.rs | 4 +- .../directory/get_public_rooms_filtered.rs | 2 +- crates/ruma-client-api/src/error.rs | 2 +- .../ruma-client-api/src/error/kind_serde.rs | 2 +- crates/ruma-client-api/src/filter.rs | 26 ++++---- crates/ruma-client-api/src/keys/claim_keys.rs | 6 +- crates/ruma-client-api/src/keys/get_keys.rs | 4 +- .../ruma-client-api/src/keys/upload_keys.rs | 2 +- .../src/keys/upload_signatures.rs | 2 +- .../src/keys/upload_signing_keys.rs | 3 +- .../src/media/create_content.rs | 2 +- .../ruma-client-api/src/media/get_content.rs | 2 +- .../src/media/get_content_as_filename.rs | 2 +- .../src/media/get_content_thumbnail.rs | 5 +- crates/ruma-client-api/src/membership.rs | 3 +- .../src/membership/get_member_events.rs | 8 ++- .../src/membership/invite_user.rs | 3 +- .../src/membership/joined_members.rs | 2 +- .../src/message/get_message_events.rs | 4 +- .../src/message/send_message_event.rs | 2 +- .../src/presence/get_presence.rs | 2 +- .../src/profile/get_avatar_url.rs | 2 +- .../src/profile/get_profile.rs | 2 +- .../src/profile/set_avatar_url.rs | 4 +- crates/ruma-client-api/src/push.rs | 10 +-- .../src/push/get_notifications.rs | 4 +- crates/ruma-client-api/src/push/set_pusher.rs | 2 +- crates/ruma-client-api/src/room.rs | 2 +- .../ruma-client-api/src/room/create_room.rs | 10 +-- .../src/room/get_room_event.rs | 3 +- .../src/search/search_events.rs | 6 +- .../src/session/get_login_types.rs | 9 ++- crates/ruma-client-api/src/session/login.rs | 7 ++- crates/ruma-client-api/src/space.rs | 9 ++- .../src/space/get_hierarchy.rs | 2 +- .../src/state/get_state_events.rs | 3 +- .../src/state/get_state_events_for_key.rs | 4 +- .../src/state/send_state_event.rs | 4 +- .../ruma-client-api/src/sync/sync_events.rs | 12 ++-- .../src/to_device/send_event_to_device.rs | 5 +- .../src/typing/create_typing_event.rs | 2 +- crates/ruma-client-api/src/uiaa.rs | 4 +- crates/ruma-client-api/src/uiaa/user_serde.rs | 3 +- .../src/user_directory/search_users.rs | 2 +- .../src/voip/get_turn_server_info.rs | 2 +- crates/ruma-client/Cargo.toml | 1 - crates/ruma-client/src/lib.rs | 2 +- crates/ruma-common/Cargo.toml | 10 +-- .../ruma-common/benches/event_deserialize.rs | 8 ++- crates/ruma-common/src/api.rs | 2 +- crates/ruma-common/src/api/error.rs | 6 +- crates/ruma-common/src/authentication.rs | 4 +- crates/ruma-common/src/directory.rs | 8 +-- crates/ruma-common/src/encryption.rs | 5 +- crates/ruma-common/src/events.rs | 5 +- crates/ruma-common/src/events/call.rs | 3 +- crates/ruma-common/src/events/call/hangup.rs | 3 +- crates/ruma-common/src/events/enums.rs | 5 +- crates/ruma-common/src/events/file.rs | 3 +- .../src/events/ignored_user_list.rs | 2 +- .../src/events/key/verification.rs | 3 +- .../src/events/key/verification/accept.rs | 6 +- .../src/events/key/verification/cancel.rs | 3 +- .../src/events/key/verification/key.rs | 3 +- .../src/events/key/verification/mac.rs | 3 +- .../src/events/key/verification/start.rs | 6 +- crates/ruma-common/src/events/policy/rule.rs | 3 +- .../src/events/policy/rule/room.rs | 5 +- crates/ruma-common/src/events/presence.rs | 2 +- crates/ruma-common/src/events/room.rs | 6 +- .../src/events/room/canonical_alias.rs | 2 +- crates/ruma-common/src/events/room/create.rs | 4 +- .../ruma-common/src/events/room/encrypted.rs | 3 +- .../src/events/room/guest_access.rs | 3 +- .../src/events/room/history_visibility.rs | 3 +- .../ruma-common/src/events/room/join_rules.rs | 3 +- crates/ruma-common/src/events/room/member.rs | 4 +- crates/ruma-common/src/events/room/message.rs | 5 +- .../src/events/room/message/content_serde.rs | 2 +- .../src/events/room/message/feedback.rs | 3 +- crates/ruma-common/src/events/room/name.rs | 5 +- .../src/events/room/power_levels.rs | 24 +++---- .../ruma-common/src/events/room/server_acl.rs | 2 +- .../src/events/room/third_party_invite.rs | 3 +- .../src/events/room_key_request.rs | 5 +- .../ruma-common/src/events/secret/request.rs | 3 +- crates/ruma-common/src/events/tag.rs | 3 +- crates/ruma-common/src/identifiers.rs | 2 +- .../src/identifiers/crypto_algorithms.rs | 2 +- crates/ruma-common/src/lib.rs | 2 +- crates/ruma-common/src/power_levels.rs | 2 +- crates/ruma-common/src/presence.rs | 4 +- crates/ruma-common/src/push.rs | 9 +-- crates/ruma-common/src/push/action.rs | 7 ++- crates/ruma-common/src/push/condition.rs | 6 +- .../push/condition/room_member_count_is.rs | 2 +- crates/ruma-common/src/receipt.rs | 7 ++- crates/ruma-common/src/room.rs | 4 +- .../src/lib.rs => ruma-common/src/serde.rs} | 18 ++---- .../src => ruma-common/src/serde}/base64.rs | 2 +- .../src => ruma-common/src/serde}/buf.rs | 0 .../src/serde}/can_be_empty.rs | 0 .../src/serde}/canonical_json.rs | 0 .../src/serde}/canonical_json/value.rs | 12 ++-- .../src => ruma-common/src/serde}/cow.rs | 0 .../src => ruma-common/src/serde}/duration.rs | 0 .../src/serde}/duration/opt_ms.rs | 0 .../src/serde}/duration/secs.rs | 0 .../src => ruma-common/src/serde}/empty.rs | 0 .../src/serde}/json_string.rs | 2 +- .../src => ruma-common/src/serde}/raw.rs | 6 +- .../src/serde}/single_element_seq.rs | 0 .../src => ruma-common/src/serde}/strings.rs | 0 .../src => ruma-common/src/serde}/test.rs | 0 .../src/serde}/urlencoded.rs | 0 .../src/serde}/urlencoded/de.rs | 4 +- .../src/serde}/urlencoded/de/val_or_vec.rs | 0 .../src/serde}/urlencoded/ser.rs | 2 +- .../src/serde}/urlencoded/ser/key.rs | 0 .../src/serde}/urlencoded/ser/pair.rs | 0 .../src/serde}/urlencoded/ser/part.rs | 0 .../src/serde}/urlencoded/ser/value.rs | 0 crates/ruma-common/src/thirdparty.rs | 3 +- crates/ruma-common/src/to_device.rs | 2 +- .../tests/api/manual_endpoint_impl.rs | 6 +- .../tests/api/ruma_api_lifetime.rs | 2 +- .../ruma-common/tests/api/ruma_api_macros.rs | 2 +- .../tests/api/ui/01-api-sanity-check.rs | 8 ++- .../tests/api/ui/05-request-only.rs | 10 +-- crates/ruma-common/tests/events/enums.rs | 3 +- crates/ruma-common/tests/events/file.rs | 5 +- .../ruma-common/tests/events/message_event.rs | 5 +- .../ruma-common/tests/events/state_event.rs | 5 +- .../tests/serde}/empty_strings.rs | 8 +-- .../tests/serde}/enum_derive.rs | 2 +- crates/ruma-common/tests/serde/mod.rs | 4 ++ .../tests/serde}/url_deserialize.rs | 4 +- .../tests/serde}/url_serialize.rs | 2 +- crates/ruma-common/tests/tests.rs | 1 + crates/ruma-federation-api/Cargo.toml | 1 - .../src/device/get_devices.rs | 2 +- .../src/directory/get_public_rooms.rs | 2 +- .../directory/get_public_rooms_filtered.rs | 2 +- crates/ruma-federation-api/src/discovery.rs | 3 +- .../src/discovery/get_remote_server_keys.rs | 3 +- .../discovery/get_remote_server_keys_batch.rs | 5 +- .../src/discovery/get_server_keys.rs | 3 +- .../src/event/get_event.rs | 2 +- .../src/event/get_missing_events.rs | 2 +- .../src/keys/claim_keys.rs | 6 +- .../ruma-federation-api/src/keys/get_keys.rs | 2 +- .../src/knock/send_knock.rs | 3 +- .../src/membership/create_invite/v1.rs | 2 +- .../src/membership/create_invite/v2.rs | 5 +- .../src/membership/create_leave_event/v1.rs | 2 +- .../src/query/get_profile_information.rs | 5 +- crates/ruma-federation-api/src/space.rs | 19 +++--- .../src/space/get_hierarchy.rs | 2 +- .../src/transactions/edu.rs | 2 +- .../transactions/send_transaction_message.rs | 3 +- crates/ruma-identity-service-api/Cargo.toml | 1 - .../src/authentication/register.rs | 2 +- .../src/invitation/sign_invitation_ed25519.rs | 3 +- .../src/keys/check_public_key_validity.rs | 3 +- .../src/keys/get_public_key.rs | 3 +- .../src/keys/validate_ephemeral_key.rs | 3 +- .../ruma-identity-service-api/src/lookup.rs | 2 +- crates/ruma-macros/src/api/api_request.rs | 5 +- crates/ruma-macros/src/api/api_response.rs | 9 ++- crates/ruma-macros/src/api/request.rs | 5 +- .../ruma-macros/src/api/request/incoming.rs | 9 ++- .../ruma-macros/src/api/request/outgoing.rs | 15 +++-- crates/ruma-macros/src/api/response.rs | 3 +- .../ruma-macros/src/api/response/incoming.rs | 3 +- .../ruma-macros/src/api/response/outgoing.rs | 5 +- crates/ruma-macros/src/events/event_enum.rs | 10 ++- crates/ruma-macros/src/events/event_type.rs | 22 +++---- crates/ruma-macros/src/serde.rs | 4 +- .../src/serde/deserialize_from_cow_str.rs | 10 +-- crates/ruma-macros/src/serde/outgoing.rs | 22 +++---- .../src/serde/serialize_as_ref_str.rs | 8 +-- crates/ruma-macros/src/serde/util.rs | 22 +------ crates/ruma-push-gateway-api/Cargo.toml | 1 - .../src/send_event_notification.rs | 12 ++-- crates/ruma-serde/CHANGELOG.md | 63 ------------------- crates/ruma-serde/Cargo.toml | 22 ------- crates/ruma-serde/README.md | 8 --- crates/ruma-signatures/Cargo.toml | 1 - crates/ruma-signatures/src/error.rs | 3 +- crates/ruma-signatures/src/functions.rs | 16 +++-- crates/ruma-signatures/src/keys.rs | 2 +- crates/ruma-signatures/src/lib.rs | 7 +-- crates/ruma-state-res/Cargo.toml | 1 - crates/ruma-state-res/src/event_auth.rs | 2 +- crates/ruma-state-res/src/lib.rs | 6 +- crates/ruma/Cargo.toml | 1 - crates/ruma/src/lib.rs | 15 +++-- crates/ruma/tests/outgoing.rs | 5 +- 226 files changed, 441 insertions(+), 595 deletions(-) rename crates/{ruma-serde/src/lib.rs => ruma-common/src/serde.rs} (86%) rename crates/{ruma-serde/src => ruma-common/src/serde}/base64.rs (98%) rename crates/{ruma-serde/src => ruma-common/src/serde}/buf.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/can_be_empty.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/canonical_json.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/canonical_json/value.rs (96%) rename crates/{ruma-serde/src => ruma-common/src/serde}/cow.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/duration.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/duration/opt_ms.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/duration/secs.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/empty.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/json_string.rs (93%) rename crates/{ruma-serde/src => ruma-common/src/serde}/raw.rs (98%) rename crates/{ruma-serde/src => ruma-common/src/serde}/single_element_seq.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/strings.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/test.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded/de.rs (98%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded/de/val_or_vec.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded/ser.rs (99%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded/ser/key.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded/ser/pair.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded/ser/part.rs (100%) rename crates/{ruma-serde/src => ruma-common/src/serde}/urlencoded/ser/value.rs (100%) rename crates/{ruma-serde/tests => ruma-common/tests/serde}/empty_strings.rs (90%) rename crates/{ruma-serde/tests => ruma-common/tests/serde}/enum_derive.rs (98%) create mode 100644 crates/ruma-common/tests/serde/mod.rs rename crates/{ruma-serde/tests => ruma-common/tests/serde}/url_deserialize.rs (98%) rename crates/{ruma-serde/tests => ruma-common/tests/serde}/url_serialize.rs (98%) delete mode 100644 crates/ruma-serde/CHANGELOG.md delete mode 100644 crates/ruma-serde/Cargo.toml delete mode 100644 crates/ruma-serde/README.md diff --git a/crates/ruma-appservice-api/Cargo.toml b/crates/ruma-appservice-api/Cargo.toml index ab67da8b..a37480d3 100644 --- a/crates/ruma-appservice-api/Cargo.toml +++ b/crates/ruma-appservice-api/Cargo.toml @@ -22,7 +22,6 @@ server = [] [dependencies] ruma-client-api = { version = "0.13.0", path = "../ruma-client-api", features = ["client"], optional = true } ruma-common = { version = "0.8.0", path = "../ruma-common", features = ["api", "events"] } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } serde_json = "1.0.61" tracing = { version = "0.1.25", optional = true } diff --git a/crates/ruma-appservice-api/src/event/push_events.rs b/crates/ruma-appservice-api/src/event/push_events.rs index 9697daa0..51c808d8 100644 --- a/crates/ruma-appservice-api/src/event/push_events.rs +++ b/crates/ruma-appservice-api/src/event/push_events.rs @@ -7,8 +7,7 @@ pub mod v1 { //! //! [spec]: https://spec.matrix.org/v1.2/application-service-api/#put_matrixappv1transactionstxnid - use ruma_common::{api::ruma_api, events::AnyRoomEvent, TransactionId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, events::AnyRoomEvent, serde::Raw, TransactionId}; ruma_api! { metadata: { diff --git a/crates/ruma-client-api/Cargo.toml b/crates/ruma-client-api/Cargo.toml index 2aa884a0..0924db7f 100644 --- a/crates/ruma-client-api/Cargo.toml +++ b/crates/ruma-client-api/Cargo.toml @@ -29,7 +29,6 @@ js_int = { version = "0.2.0", features = ["serde"] } maplit = "1.0.2" percent-encoding = "2.1.0" ruma-common = { version = "0.8.0", path = "../ruma-common", features = ["api", "events"] } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } serde_json = "1.0.61" diff --git a/crates/ruma-client-api/src/account.rs b/crates/ruma-client-api/src/account.rs index 1eee705b..03c3532d 100644 --- a/crates/ruma-client-api/src/account.rs +++ b/crates/ruma-client-api/src/account.rs @@ -19,7 +19,7 @@ pub mod request_registration_token_via_msisdn; pub mod unbind_3pid; pub mod whoami; -use ruma_serde::{Outgoing, StringEnum}; +use ruma_common::serde::{Outgoing, StringEnum}; use serde::Serialize; use crate::PrivOwnedStr; diff --git a/crates/ruma-client-api/src/account/change_password.rs b/crates/ruma-client-api/src/account/change_password.rs index dee74d7e..2418ec9b 100644 --- a/crates/ruma-client-api/src/account/change_password.rs +++ b/crates/ruma-client-api/src/account/change_password.rs @@ -32,7 +32,7 @@ pub mod v3 { /// /// When false, the server can still take advantage of the soft logout method for the user's /// remaining devices. - #[serde(default = "ruma_serde::default_true", skip_serializing_if = "ruma_serde::is_true")] + #[serde(default = "ruma_common::serde::default_true", skip_serializing_if = "ruma_common::serde::is_true")] pub logout_devices: bool, /// Additional authentication information for the user-interactive authentication API. diff --git a/crates/ruma-client-api/src/account/register.rs b/crates/ruma-client-api/src/account/register.rs index a0ddda1a..f4473e8c 100644 --- a/crates/ruma-client-api/src/account/register.rs +++ b/crates/ruma-client-api/src/account/register.rs @@ -65,12 +65,12 @@ pub mod v3 { /// /// Defaults to `User` if omitted. #[ruma_api(query)] - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub kind: RegistrationKind, /// If `true`, an `access_token` and `device_id` should not be returned /// from this call, therefore preventing an automatic login. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub inhibit_login: bool, /// Login `type` used by Appservices. diff --git a/crates/ruma-client-api/src/account/request_3pid_management_token_via_email.rs b/crates/ruma-client-api/src/account/request_3pid_management_token_via_email.rs index 17f58539..439ea4c1 100644 --- a/crates/ruma-client-api/src/account/request_3pid_management_token_via_email.rs +++ b/crates/ruma-client-api/src/account/request_3pid_management_token_via_email.rs @@ -56,7 +56,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub submit_url: Option, } diff --git a/crates/ruma-client-api/src/account/request_3pid_management_token_via_msisdn.rs b/crates/ruma-client-api/src/account/request_3pid_management_token_via_msisdn.rs index 4f5fd375..e3087b15 100644 --- a/crates/ruma-client-api/src/account/request_3pid_management_token_via_msisdn.rs +++ b/crates/ruma-client-api/src/account/request_3pid_management_token_via_msisdn.rs @@ -59,7 +59,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub submit_url: Option, } diff --git a/crates/ruma-client-api/src/account/request_openid_token.rs b/crates/ruma-client-api/src/account/request_openid_token.rs index 37953272..60e66829 100644 --- a/crates/ruma-client-api/src/account/request_openid_token.rs +++ b/crates/ruma-client-api/src/account/request_openid_token.rs @@ -38,7 +38,7 @@ pub mod v3 { pub matrix_server_name: Box, /// Seconds until token expiration. - #[serde(with = "ruma_serde::duration::secs")] + #[serde(with = "ruma_common::serde::duration::secs")] pub expires_in: Duration, } diff --git a/crates/ruma-client-api/src/account/request_password_change_token_via_email.rs b/crates/ruma-client-api/src/account/request_password_change_token_via_email.rs index a08c503d..85e1fe99 100644 --- a/crates/ruma-client-api/src/account/request_password_change_token_via_email.rs +++ b/crates/ruma-client-api/src/account/request_password_change_token_via_email.rs @@ -56,7 +56,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub submit_url: Option, } diff --git a/crates/ruma-client-api/src/account/request_password_change_token_via_msisdn.rs b/crates/ruma-client-api/src/account/request_password_change_token_via_msisdn.rs index acbbeb64..35c94ff8 100644 --- a/crates/ruma-client-api/src/account/request_password_change_token_via_msisdn.rs +++ b/crates/ruma-client-api/src/account/request_password_change_token_via_msisdn.rs @@ -51,7 +51,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub submit_url: Option, } diff --git a/crates/ruma-client-api/src/account/request_registration_token_via_email.rs b/crates/ruma-client-api/src/account/request_registration_token_via_email.rs index 8633a6aa..49dbcf11 100644 --- a/crates/ruma-client-api/src/account/request_registration_token_via_email.rs +++ b/crates/ruma-client-api/src/account/request_registration_token_via_email.rs @@ -56,7 +56,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub submit_url: Option, } diff --git a/crates/ruma-client-api/src/account/request_registration_token_via_msisdn.rs b/crates/ruma-client-api/src/account/request_registration_token_via_msisdn.rs index a4833155..58506716 100644 --- a/crates/ruma-client-api/src/account/request_registration_token_via_msisdn.rs +++ b/crates/ruma-client-api/src/account/request_registration_token_via_msisdn.rs @@ -59,7 +59,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub submit_url: Option, } diff --git a/crates/ruma-client-api/src/account/whoami.rs b/crates/ruma-client-api/src/account/whoami.rs index 44b4ba0b..4c7c2f0f 100644 --- a/crates/ruma-client-api/src/account/whoami.rs +++ b/crates/ruma-client-api/src/account/whoami.rs @@ -31,7 +31,7 @@ pub mod v3 { pub device_id: Option>, /// If `true`, the user is a guest user. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub is_guest: bool, } diff --git a/crates/ruma-client-api/src/backup.rs b/crates/ruma-client-api/src/backup.rs index 20034277..ed1c2f63 100644 --- a/crates/ruma-client-api/src/backup.rs +++ b/crates/ruma-client-api/src/backup.rs @@ -18,8 +18,10 @@ pub mod update_backup_version; use std::collections::BTreeMap; use js_int::UInt; -use ruma_common::{DeviceKeyId, UserId}; -use ruma_serde::{Base64, Raw}; +use ruma_common::{ + serde::{Base64, Raw}, + DeviceKeyId, UserId, +}; use serde::{Deserialize, Serialize}; /// A wrapper around a mapping of session IDs to key data. diff --git a/crates/ruma-client-api/src/backup/add_backup_keys_for_room.rs b/crates/ruma-client-api/src/backup/add_backup_keys_for_room.rs index 14473672..0a1cf8be 100644 --- a/crates/ruma-client-api/src/backup/add_backup_keys_for_room.rs +++ b/crates/ruma-client-api/src/backup/add_backup_keys_for_room.rs @@ -8,8 +8,7 @@ pub mod v3 { use std::collections::BTreeMap; use js_int::UInt; - use ruma_common::{api::ruma_api, RoomId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw, RoomId}; use crate::backup::KeyBackupData; diff --git a/crates/ruma-client-api/src/backup/add_backup_keys_for_session.rs b/crates/ruma-client-api/src/backup/add_backup_keys_for_session.rs index 9629eb79..358bb676 100644 --- a/crates/ruma-client-api/src/backup/add_backup_keys_for_session.rs +++ b/crates/ruma-client-api/src/backup/add_backup_keys_for_session.rs @@ -6,8 +6,7 @@ pub mod v3 { //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#put_matrixclientv3room_keyskeysroomidsessionid use js_int::UInt; - use ruma_common::{api::ruma_api, RoomId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw, RoomId}; use crate::backup::KeyBackupData; diff --git a/crates/ruma-client-api/src/backup/create_backup_version.rs b/crates/ruma-client-api/src/backup/create_backup_version.rs index a6331ba9..57d73710 100644 --- a/crates/ruma-client-api/src/backup/create_backup_version.rs +++ b/crates/ruma-client-api/src/backup/create_backup_version.rs @@ -5,8 +5,7 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3room_keysversion - use ruma_common::api::ruma_api; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw}; use crate::backup::BackupAlgorithm; diff --git a/crates/ruma-client-api/src/backup/get_backup_info.rs b/crates/ruma-client-api/src/backup/get_backup_info.rs index ebd7aba4..4245a353 100644 --- a/crates/ruma-client-api/src/backup/get_backup_info.rs +++ b/crates/ruma-client-api/src/backup/get_backup_info.rs @@ -8,8 +8,7 @@ pub mod v3 { //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3room_keysversionversion use js_int::UInt; - use ruma_common::api::ruma_api; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw}; use serde::{ser, Deserialize, Deserializer, Serialize}; use serde_json::value::{to_raw_value as to_raw_json_value, RawValue as RawJsonValue}; diff --git a/crates/ruma-client-api/src/backup/get_backup_keys_for_room.rs b/crates/ruma-client-api/src/backup/get_backup_keys_for_room.rs index d171c8e6..5c315a3b 100644 --- a/crates/ruma-client-api/src/backup/get_backup_keys_for_room.rs +++ b/crates/ruma-client-api/src/backup/get_backup_keys_for_room.rs @@ -7,8 +7,7 @@ pub mod v3 { use std::collections::BTreeMap; - use ruma_common::{api::ruma_api, RoomId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw, RoomId}; use crate::backup::KeyBackupData; diff --git a/crates/ruma-client-api/src/backup/get_backup_keys_for_session.rs b/crates/ruma-client-api/src/backup/get_backup_keys_for_session.rs index e5284a98..3946faac 100644 --- a/crates/ruma-client-api/src/backup/get_backup_keys_for_session.rs +++ b/crates/ruma-client-api/src/backup/get_backup_keys_for_session.rs @@ -5,8 +5,7 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3room_keyskeysroomidsessionid - use ruma_common::{api::ruma_api, RoomId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw, RoomId}; use crate::backup::KeyBackupData; diff --git a/crates/ruma-client-api/src/backup/get_latest_backup_info.rs b/crates/ruma-client-api/src/backup/get_latest_backup_info.rs index e91c8769..038cbbc4 100644 --- a/crates/ruma-client-api/src/backup/get_latest_backup_info.rs +++ b/crates/ruma-client-api/src/backup/get_latest_backup_info.rs @@ -6,8 +6,7 @@ pub mod v3 { //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3room_keysversion use js_int::UInt; - use ruma_common::api::ruma_api; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw}; use serde::{ser, Deserialize, Deserializer, Serialize}; use serde_json::value::to_raw_value as to_raw_json_value; diff --git a/crates/ruma-client-api/src/backup/update_backup_version.rs b/crates/ruma-client-api/src/backup/update_backup_version.rs index a67da665..795e5dbb 100644 --- a/crates/ruma-client-api/src/backup/update_backup_version.rs +++ b/crates/ruma-client-api/src/backup/update_backup_version.rs @@ -5,8 +5,7 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#put_matrixclientv3room_keysversionversion - use ruma_common::api::ruma_api; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw}; use crate::backup::BackupAlgorithm; diff --git a/crates/ruma-client-api/src/capabilities.rs b/crates/ruma-client-api/src/capabilities.rs index 5fea7e50..b7a2f2f0 100644 --- a/crates/ruma-client-api/src/capabilities.rs +++ b/crates/ruma-client-api/src/capabilities.rs @@ -3,8 +3,7 @@ use std::{borrow::Cow, collections::BTreeMap}; use maplit::btreemap; -use ruma_common::RoomVersionId; -use ruma_serde::StringEnum; +use ruma_common::{serde::StringEnum, RoomVersionId}; use serde::{Deserialize, Serialize}; use serde_json::{from_value as from_json_value, to_value as to_json_value, Value as JsonValue}; diff --git a/crates/ruma-client-api/src/config/get_global_account_data.rs b/crates/ruma-client-api/src/config/get_global_account_data.rs index e244042a..033decfc 100644 --- a/crates/ruma-client-api/src/config/get_global_account_data.rs +++ b/crates/ruma-client-api/src/config/get_global_account_data.rs @@ -5,8 +5,9 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3useruseridaccount_datatype - use ruma_common::{api::ruma_api, events::AnyGlobalAccountDataEventContent, UserId}; - use ruma_serde::Raw; + use ruma_common::{ + api::ruma_api, events::AnyGlobalAccountDataEventContent, serde::Raw, UserId, + }; ruma_api! { metadata: { diff --git a/crates/ruma-client-api/src/config/get_room_account_data.rs b/crates/ruma-client-api/src/config/get_room_account_data.rs index 394ad70e..3df2974d 100644 --- a/crates/ruma-client-api/src/config/get_room_account_data.rs +++ b/crates/ruma-client-api/src/config/get_room_account_data.rs @@ -5,8 +5,9 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3useruseridroomsroomidaccount_datatype - use ruma_common::{api::ruma_api, events::AnyRoomAccountDataEventContent, RoomId, UserId}; - use ruma_serde::Raw; + use ruma_common::{ + api::ruma_api, events::AnyRoomAccountDataEventContent, serde::Raw, RoomId, UserId, + }; ruma_api! { metadata: { diff --git a/crates/ruma-client-api/src/config/set_global_account_data.rs b/crates/ruma-client-api/src/config/set_global_account_data.rs index 4450190c..da81ee42 100644 --- a/crates/ruma-client-api/src/config/set_global_account_data.rs +++ b/crates/ruma-client-api/src/config/set_global_account_data.rs @@ -8,9 +8,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyGlobalAccountDataEventContent, GlobalAccountDataEventContent}, + serde::Raw, UserId, }; - use ruma_serde::Raw; use serde_json::value::to_raw_value as to_raw_json_value; ruma_api! { diff --git a/crates/ruma-client-api/src/config/set_room_account_data.rs b/crates/ruma-client-api/src/config/set_room_account_data.rs index ef624248..88331ece 100644 --- a/crates/ruma-client-api/src/config/set_room_account_data.rs +++ b/crates/ruma-client-api/src/config/set_room_account_data.rs @@ -8,9 +8,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyRoomAccountDataEventContent, RoomAccountDataEventContent}, + serde::Raw, RoomId, UserId, }; - use ruma_serde::Raw; use serde_json::value::to_raw_value as to_raw_json_value; ruma_api! { diff --git a/crates/ruma-client-api/src/context/get_context.rs b/crates/ruma-client-api/src/context/get_context.rs index 90fda604..ff6f9721 100644 --- a/crates/ruma-client-api/src/context/get_context.rs +++ b/crates/ruma-client-api/src/context/get_context.rs @@ -9,9 +9,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyRoomEvent, AnyStateEvent}, + serde::Raw, EventId, RoomId, }; - use ruma_serde::Raw; use crate::filter::{IncomingRoomEventFilter, RoomEventFilter}; @@ -46,7 +46,7 @@ pub mod v3 { /// A RoomEventFilter to filter returned events with. #[ruma_api(query)] #[serde( - with = "ruma_serde::json_string", + with = "ruma_common::serde::json_string", default, skip_serializing_if = "RoomEventFilter::is_empty" )] diff --git a/crates/ruma-client-api/src/directory/get_public_rooms_filtered.rs b/crates/ruma-client-api/src/directory/get_public_rooms_filtered.rs index 62f06b5c..316cc3a6 100644 --- a/crates/ruma-client-api/src/directory/get_public_rooms_filtered.rs +++ b/crates/ruma-client-api/src/directory/get_public_rooms_filtered.rs @@ -46,7 +46,7 @@ pub mod v3 { pub filter: Filter<'a>, /// Network to fetch the public room lists from. - #[serde(flatten, skip_serializing_if = "ruma_serde::is_default")] + #[serde(flatten, skip_serializing_if = "ruma_common::serde::is_default")] pub room_network: RoomNetwork<'a>, } diff --git a/crates/ruma-client-api/src/error.rs b/crates/ruma-client-api/src/error.rs index dc113e94..52d51403 100644 --- a/crates/ruma-client-api/src/error.rs +++ b/crates/ruma-client-api/src/error.rs @@ -262,7 +262,7 @@ impl OutgoingResponse for Error { http::Response::builder() .header(http::header::CONTENT_TYPE, "application/json") .status(self.status_code) - .body(ruma_serde::json_to_buf(&ErrorBody::from(self))?) + .body(ruma_common::serde::json_to_buf(&ErrorBody::from(self))?) .map_err(Into::into) } } diff --git a/crates/ruma-client-api/src/error/kind_serde.rs b/crates/ruma-client-api/src/error/kind_serde.rs index 9179dfaf..adc3275f 100644 --- a/crates/ruma-client-api/src/error/kind_serde.rs +++ b/crates/ruma-client-api/src/error/kind_serde.rs @@ -7,7 +7,7 @@ use std::{ }; use js_int::UInt; -use ruma_serde::{DeserializeFromCowStr, FromString}; +use ruma_common::serde::{DeserializeFromCowStr, FromString}; use serde::{ de::{self, Deserialize, Deserializer, MapAccess, Visitor}, ser::{self, Serialize, SerializeMap, Serializer}, diff --git a/crates/ruma-client-api/src/filter.rs b/crates/ruma-client-api/src/filter.rs index fb947c57..5fbfba5e 100644 --- a/crates/ruma-client-api/src/filter.rs +++ b/crates/ruma-client-api/src/filter.rs @@ -7,8 +7,10 @@ mod lazy_load; mod url; use js_int::UInt; -use ruma_common::{RoomId, UserId}; -use ruma_serde::{Outgoing, StringEnum}; +use ruma_common::{ + serde::{Outgoing, StringEnum}, + RoomId, UserId, +}; use serde::Serialize; use crate::PrivOwnedStr; @@ -161,24 +163,24 @@ pub struct RoomFilter<'a> { /// Include rooms that the user has left in the sync. /// /// Defaults to `false`. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub include_leave: bool, /// The per user account data to include for rooms. - #[serde(default, skip_serializing_if = "ruma_serde::is_empty")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_empty")] pub account_data: RoomEventFilter<'a>, /// The message and state update events to include for rooms. - #[serde(default, skip_serializing_if = "ruma_serde::is_empty")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_empty")] pub timeline: RoomEventFilter<'a>, /// The events that aren't recorded in the room history, e.g. typing and receipts, to include /// for rooms. - #[serde(default, skip_serializing_if = "ruma_serde::is_empty")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_empty")] pub ephemeral: RoomEventFilter<'a>, /// The state events to include for rooms. - #[serde(default, skip_serializing_if = "ruma_serde::is_empty")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_empty")] pub state: RoomEventFilter<'a>, /// A list of room IDs to exclude. @@ -325,19 +327,19 @@ pub struct FilterDefinition<'a> { /// /// 'client' will return the events in a format suitable for clients. 'federation' will return /// the raw event as received over federation. The default is 'client'. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub event_format: EventFormat, /// The presence updates to include. - #[serde(default, skip_serializing_if = "ruma_serde::is_empty")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_empty")] pub presence: Filter<'a>, /// The user account data that isn't associated with rooms to include. - #[serde(default, skip_serializing_if = "ruma_serde::is_empty")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_empty")] pub account_data: Filter<'a>, /// Filters to be applied to room data. - #[serde(default, skip_serializing_if = "ruma_serde::is_empty")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_empty")] pub room: RoomFilter<'a>, } @@ -382,7 +384,7 @@ impl IncomingFilterDefinition { macro_rules! can_be_empty { ($ty:ident $(<$gen:tt>)?) => { - impl $(<$gen>)? ruma_serde::CanBeEmpty for $ty $(<$gen>)? { + impl $(<$gen>)? ruma_common::serde::CanBeEmpty for $ty $(<$gen>)? { fn is_empty(&self) -> bool { self.is_empty() } diff --git a/crates/ruma-client-api/src/keys/claim_keys.rs b/crates/ruma-client-api/src/keys/claim_keys.rs index cbffff53..d00467a4 100644 --- a/crates/ruma-client-api/src/keys/claim_keys.rs +++ b/crates/ruma-client-api/src/keys/claim_keys.rs @@ -8,9 +8,9 @@ pub mod v3 { use std::{collections::BTreeMap, time::Duration}; use ruma_common::{ - api::ruma_api, encryption::OneTimeKey, DeviceId, DeviceKeyAlgorithm, DeviceKeyId, UserId, + api::ruma_api, encryption::OneTimeKey, serde::Raw, DeviceId, DeviceKeyAlgorithm, + DeviceKeyId, UserId, }; - use ruma_serde::Raw; use serde_json::Value as JsonValue; ruma_api! { @@ -29,7 +29,7 @@ pub mod v3 { /// The time (in milliseconds) to wait when downloading keys from remote servers. /// 10 seconds is the recommended default. #[serde( - with = "ruma_serde::duration::opt_ms", + with = "ruma_common::serde::duration::opt_ms", default, skip_serializing_if = "Option::is_none", )] diff --git a/crates/ruma-client-api/src/keys/get_keys.rs b/crates/ruma-client-api/src/keys/get_keys.rs index baf4d6fc..9eab924f 100644 --- a/crates/ruma-client-api/src/keys/get_keys.rs +++ b/crates/ruma-client-api/src/keys/get_keys.rs @@ -10,9 +10,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, encryption::{CrossSigningKey, DeviceKeys}, + serde::Raw, DeviceId, UserId, }; - use ruma_serde::Raw; use serde_json::Value as JsonValue; ruma_api! { @@ -33,7 +33,7 @@ pub mod v3 { /// /// 10 seconds is the recommended default. #[serde( - with = "ruma_serde::duration::opt_ms", + with = "ruma_common::serde::duration::opt_ms", default, skip_serializing_if = "Option::is_none", )] diff --git a/crates/ruma-client-api/src/keys/upload_keys.rs b/crates/ruma-client-api/src/keys/upload_keys.rs index aaad12ab..a50c4ec8 100644 --- a/crates/ruma-client-api/src/keys/upload_keys.rs +++ b/crates/ruma-client-api/src/keys/upload_keys.rs @@ -11,9 +11,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, encryption::{DeviceKeys, OneTimeKey}, + serde::Raw, DeviceKeyAlgorithm, DeviceKeyId, }; - use ruma_serde::Raw; ruma_api! { metadata: { diff --git a/crates/ruma-client-api/src/keys/upload_signatures.rs b/crates/ruma-client-api/src/keys/upload_signatures.rs index bfab8eb0..b5078ff9 100644 --- a/crates/ruma-client-api/src/keys/upload_signatures.rs +++ b/crates/ruma-client-api/src/keys/upload_signatures.rs @@ -10,9 +10,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, encryption::{CrossSigningKey, DeviceKeys}, + serde::{Raw, StringEnum}, DeviceId, UserId, }; - use ruma_serde::{Raw, StringEnum}; use serde::{Deserialize, Serialize}; use serde_json::value::RawValue as RawJsonValue; diff --git a/crates/ruma-client-api/src/keys/upload_signing_keys.rs b/crates/ruma-client-api/src/keys/upload_signing_keys.rs index 81fb4e7a..25d56fe4 100644 --- a/crates/ruma-client-api/src/keys/upload_signing_keys.rs +++ b/crates/ruma-client-api/src/keys/upload_signing_keys.rs @@ -5,8 +5,7 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3keysdevice_signingupload - use ruma_common::{api::ruma_api, encryption::CrossSigningKey}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, encryption::CrossSigningKey, serde::Raw}; use crate::uiaa::{AuthData, IncomingAuthData, UiaaResponse}; diff --git a/crates/ruma-client-api/src/media/create_content.rs b/crates/ruma-client-api/src/media/create_content.rs index abd1e745..69614bac 100644 --- a/crates/ruma-client-api/src/media/create_content.rs +++ b/crates/ruma-client-api/src/media/create_content.rs @@ -39,7 +39,7 @@ pub mod v3 { /// [MSC2448](https://github.com/matrix-org/matrix-spec-proposals/pull/2448). #[ruma_api(query)] #[cfg(feature = "unstable-msc2448")] - #[serde(default, skip_serializing_if = "ruma_serde::is_default", rename = "xyz.amorgan.blurhash")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default", rename = "xyz.amorgan.blurhash")] pub generate_blurhash: bool, } diff --git a/crates/ruma-client-api/src/media/get_content.rs b/crates/ruma-client-api/src/media/get_content.rs index d4bec5de..73dcd6dd 100644 --- a/crates/ruma-client-api/src/media/get_content.rs +++ b/crates/ruma-client-api/src/media/get_content.rs @@ -32,7 +32,7 @@ pub mod v3 { /// /// Used to prevent routing loops. Defaults to `true`. #[ruma_api(query)] - #[serde(default = "ruma_serde::default_true", skip_serializing_if = "ruma_serde::is_true")] + #[serde(default = "ruma_common::serde::default_true", skip_serializing_if = "ruma_common::serde::is_true")] pub allow_remote: bool, } diff --git a/crates/ruma-client-api/src/media/get_content_as_filename.rs b/crates/ruma-client-api/src/media/get_content_as_filename.rs index 8f48c736..45cd5cec 100644 --- a/crates/ruma-client-api/src/media/get_content_as_filename.rs +++ b/crates/ruma-client-api/src/media/get_content_as_filename.rs @@ -36,7 +36,7 @@ pub mod v3 { /// /// Used to prevent routing loops. Defaults to `true`. #[ruma_api(query)] - #[serde(default = "ruma_serde::default_true", skip_serializing_if = "ruma_serde::is_true")] + #[serde(default = "ruma_common::serde::default_true", skip_serializing_if = "ruma_common::serde::is_true")] pub allow_remote: bool, } diff --git a/crates/ruma-client-api/src/media/get_content_thumbnail.rs b/crates/ruma-client-api/src/media/get_content_thumbnail.rs index 7a7b88cc..1639db82 100644 --- a/crates/ruma-client-api/src/media/get_content_thumbnail.rs +++ b/crates/ruma-client-api/src/media/get_content_thumbnail.rs @@ -6,8 +6,7 @@ pub mod v3 { //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixmediav3thumbnailservernamemediaid use js_int::UInt; - use ruma_common::{api::ruma_api, Error, MxcUri, ServerName}; - use ruma_serde::StringEnum; + use ruma_common::{api::ruma_api, serde::StringEnum, Error, MxcUri, ServerName}; use crate::PrivOwnedStr; @@ -53,7 +52,7 @@ pub mod v3 { /// /// Used to prevent routing loops. Defaults to `true`. #[ruma_api(query)] - #[serde(default = "ruma_serde::default_true", skip_serializing_if = "ruma_serde::is_true")] + #[serde(default = "ruma_common::serde::default_true", skip_serializing_if = "ruma_common::serde::is_true")] pub allow_remote: bool, } diff --git a/crates/ruma-client-api/src/membership.rs b/crates/ruma-client-api/src/membership.rs index a788d0a1..19e997c3 100644 --- a/crates/ruma-client-api/src/membership.rs +++ b/crates/ruma-client-api/src/membership.rs @@ -14,8 +14,7 @@ pub mod unban_user; use std::collections::BTreeMap; -use ruma_common::{thirdparty::Medium, ServerName, ServerSigningKeyId, UserId}; -use ruma_serde::Outgoing; +use ruma_common::{serde::Outgoing, thirdparty::Medium, ServerName, ServerSigningKeyId, UserId}; use serde::Serialize; /// A signature of an `m.third_party_invite` token to prove that this user owns a third party diff --git a/crates/ruma-client-api/src/membership/get_member_events.rs b/crates/ruma-client-api/src/membership/get_member_events.rs index 897f3b82..795d45da 100644 --- a/crates/ruma-client-api/src/membership/get_member_events.rs +++ b/crates/ruma-client-api/src/membership/get_member_events.rs @@ -5,8 +5,12 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3roomsroomidmembers - use ruma_common::{api::ruma_api, events::room::member::RoomMemberEvent, RoomId}; - use ruma_serde::{Raw, StringEnum}; + use ruma_common::{ + api::ruma_api, + events::room::member::RoomMemberEvent, + serde::{Raw, StringEnum}, + RoomId, + }; use crate::PrivOwnedStr; diff --git a/crates/ruma-client-api/src/membership/invite_user.rs b/crates/ruma-client-api/src/membership/invite_user.rs index bb311b57..7c3eacaf 100644 --- a/crates/ruma-client-api/src/membership/invite_user.rs +++ b/crates/ruma-client-api/src/membership/invite_user.rs @@ -10,8 +10,7 @@ pub mod v3 { //! [spec-mxid]: https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3roomsroomidinvite //! [spec-3pid]: https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3roomsroomidinvite-1 - use ruma_common::{api::ruma_api, RoomId, UserId}; - use ruma_serde::Outgoing; + use ruma_common::{api::ruma_api, serde::Outgoing, RoomId, UserId}; use serde::Serialize; use crate::membership::{IncomingInvite3pid, Invite3pid}; diff --git a/crates/ruma-client-api/src/membership/joined_members.rs b/crates/ruma-client-api/src/membership/joined_members.rs index 0fae4cea..3e6c3f12 100644 --- a/crates/ruma-client-api/src/membership/joined_members.rs +++ b/crates/ruma-client-api/src/membership/joined_members.rs @@ -66,7 +66,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, } diff --git a/crates/ruma-client-api/src/message/get_message_events.rs b/crates/ruma-client-api/src/message/get_message_events.rs index 069f4a21..c56c69ac 100644 --- a/crates/ruma-client-api/src/message/get_message_events.rs +++ b/crates/ruma-client-api/src/message/get_message_events.rs @@ -9,9 +9,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyRoomEvent, AnyStateEvent}, + serde::Raw, RoomId, }; - use ruma_serde::Raw; use serde::{Deserialize, Serialize}; use crate::filter::{IncomingRoomEventFilter, RoomEventFilter}; @@ -64,7 +64,7 @@ pub mod v3 { /// A RoomEventFilter to filter returned events with. #[ruma_api(query)] #[serde( - with = "ruma_serde::json_string", + with = "ruma_common::serde::json_string", default, skip_serializing_if = "RoomEventFilter::is_empty" )] diff --git a/crates/ruma-client-api/src/message/send_message_event.rs b/crates/ruma-client-api/src/message/send_message_event.rs index 24dab7d9..a94022c5 100644 --- a/crates/ruma-client-api/src/message/send_message_event.rs +++ b/crates/ruma-client-api/src/message/send_message_event.rs @@ -8,9 +8,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyMessageLikeEventContent, MessageLikeEventContent}, + serde::Raw, EventId, RoomId, TransactionId, }; - use ruma_serde::Raw; use serde_json::value::to_raw_value as to_raw_json_value; ruma_api! { diff --git a/crates/ruma-client-api/src/presence/get_presence.rs b/crates/ruma-client-api/src/presence/get_presence.rs index 6316cf30..6263b66a 100644 --- a/crates/ruma-client-api/src/presence/get_presence.rs +++ b/crates/ruma-client-api/src/presence/get_presence.rs @@ -38,7 +38,7 @@ pub mod v3 { /// The length of time in milliseconds since an action was performed by the user. #[serde( - with = "ruma_serde::duration::opt_ms", + with = "ruma_common::serde::duration::opt_ms", default, skip_serializing_if = "Option::is_none", )] diff --git a/crates/ruma-client-api/src/profile/get_avatar_url.rs b/crates/ruma-client-api/src/profile/get_avatar_url.rs index c7903dba..5587717c 100644 --- a/crates/ruma-client-api/src/profile/get_avatar_url.rs +++ b/crates/ruma-client-api/src/profile/get_avatar_url.rs @@ -34,7 +34,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, diff --git a/crates/ruma-client-api/src/profile/get_profile.rs b/crates/ruma-client-api/src/profile/get_profile.rs index d3d2b1b3..14350eed 100644 --- a/crates/ruma-client-api/src/profile/get_profile.rs +++ b/crates/ruma-client-api/src/profile/get_profile.rs @@ -34,7 +34,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, diff --git a/crates/ruma-client-api/src/profile/set_avatar_url.rs b/crates/ruma-client-api/src/profile/set_avatar_url.rs index a9921026..1e9ba34b 100644 --- a/crates/ruma-client-api/src/profile/set_avatar_url.rs +++ b/crates/ruma-client-api/src/profile/set_avatar_url.rs @@ -34,8 +34,8 @@ pub mod v3 { feature = "compat", serde( default, - deserialize_with = "ruma_serde::empty_string_as_none", - serialize_with = "ruma_serde::none_as_empty_string" + deserialize_with = "ruma_common::serde::empty_string_as_none", + serialize_with = "ruma_common::serde::none_as_empty_string" ) )] #[cfg_attr( diff --git a/crates/ruma-client-api/src/push.rs b/crates/ruma-client-api/src/push.rs index fab42834..ac5a445a 100644 --- a/crates/ruma-client-api/src/push.rs +++ b/crates/ruma-client-api/src/push.rs @@ -1,11 +1,13 @@ //! Endpoints for push notifications. use std::{convert::TryFrom, error::Error, fmt}; -use ruma_common::push::{ - Action, ConditionalPushRule, ConditionalPushRuleInit, PatternedPushRule, PatternedPushRuleInit, - PushCondition, PusherData, SimplePushRule, SimplePushRuleInit, +use ruma_common::{ + push::{ + Action, ConditionalPushRule, ConditionalPushRuleInit, PatternedPushRule, + PatternedPushRuleInit, PushCondition, PusherData, SimplePushRule, SimplePushRuleInit, + }, + serde::StringEnum, }; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; use crate::PrivOwnedStr; diff --git a/crates/ruma-client-api/src/push/get_notifications.rs b/crates/ruma-client-api/src/push/get_notifications.rs index 6ce35965..b4584540 100644 --- a/crates/ruma-client-api/src/push/get_notifications.rs +++ b/crates/ruma-client-api/src/push/get_notifications.rs @@ -7,9 +7,9 @@ pub mod v3 { use js_int::UInt; use ruma_common::{ - api::ruma_api, events::AnySyncRoomEvent, push::Action, MilliSecondsSinceUnixEpoch, RoomId, + api::ruma_api, events::AnySyncRoomEvent, push::Action, serde::Raw, + MilliSecondsSinceUnixEpoch, RoomId, }; - use ruma_serde::Raw; use serde::{Deserialize, Serialize}; ruma_api! { diff --git a/crates/ruma-client-api/src/push/set_pusher.rs b/crates/ruma-client-api/src/push/set_pusher.rs index 5d80e768..4c85a577 100644 --- a/crates/ruma-client-api/src/push/set_pusher.rs +++ b/crates/ruma-client-api/src/push/set_pusher.rs @@ -30,7 +30,7 @@ pub mod v3 { /// Controls if another pusher with the same pushkey and app id should be created. /// /// Defaults to `false`. See the spec for more details. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub append: bool, } diff --git a/crates/ruma-client-api/src/room.rs b/crates/ruma-client-api/src/room.rs index 347dbac5..7b8fac0f 100644 --- a/crates/ruma-client-api/src/room.rs +++ b/crates/ruma-client-api/src/room.rs @@ -6,7 +6,7 @@ pub mod get_room_event; pub mod report_content; pub mod upgrade_room; -use ruma_serde::StringEnum; +use ruma_common::serde::StringEnum; use crate::PrivOwnedStr; diff --git a/crates/ruma-client-api/src/room/create_room.rs b/crates/ruma-client-api/src/room/create_room.rs index 8897cbb3..7ff35bd5 100644 --- a/crates/ruma-client-api/src/room/create_room.rs +++ b/crates/ruma-client-api/src/room/create_room.rs @@ -16,9 +16,9 @@ pub mod v3 { AnyInitialStateEvent, }, room::RoomType, + serde::{Raw, StringEnum}, RoomId, RoomName, RoomVersionId, UserId, }; - use ruma_serde::{Raw, StringEnum}; use serde::{Deserialize, Serialize}; use crate::{ @@ -62,7 +62,7 @@ pub mod v3 { pub invite_3pid: &'a [Invite3pid<'a>], /// If set, this sets the `is_direct` flag on room invites. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub is_direct: bool, /// If this is included, an `m.room.name` event will be sent into the room to indicate the @@ -97,7 +97,7 @@ pub mod v3 { /// /// A private visibility will hide the room from the published room list. Defaults to /// `Private`. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub visibility: Visibility, } @@ -135,8 +135,8 @@ pub mod v3 { /// Defaults to `true` if key does not exist. #[serde( rename = "m.federate", - default = "ruma_serde::default_true", - skip_serializing_if = "ruma_serde::is_true" + default = "ruma_common::serde::default_true", + skip_serializing_if = "ruma_common::serde::is_true" )] pub federate: bool, diff --git a/crates/ruma-client-api/src/room/get_room_event.rs b/crates/ruma-client-api/src/room/get_room_event.rs index d0e1956b..60e38f8b 100644 --- a/crates/ruma-client-api/src/room/get_room_event.rs +++ b/crates/ruma-client-api/src/room/get_room_event.rs @@ -5,8 +5,7 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3roomsroomideventeventid - use ruma_common::{api::ruma_api, events::AnyRoomEvent, EventId, RoomId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, events::AnyRoomEvent, serde::Raw, EventId, RoomId}; ruma_api! { metadata: { diff --git a/crates/ruma-client-api/src/search/search_events.rs b/crates/ruma-client-api/src/search/search_events.rs index 4690e600..096744ee 100644 --- a/crates/ruma-client-api/src/search/search_events.rs +++ b/crates/ruma-client-api/src/search/search_events.rs @@ -11,9 +11,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyRoomEvent, AnyStateEvent}, + serde::{Outgoing, Raw, StringEnum}, EventId, MxcUri, RoomId, UserId, }; - use ruma_serde::{Outgoing, Raw, StringEnum}; use serde::{Deserialize, Serialize}; use crate::{ @@ -151,7 +151,7 @@ pub mod v3 { /// Requests that the server returns the historic profile information for the users that /// sent the events that were returned. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub include_profile: bool, } @@ -484,7 +484,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, diff --git a/crates/ruma-client-api/src/session/get_login_types.rs b/crates/ruma-client-api/src/session/get_login_types.rs index 452bd1de..a06cc70b 100644 --- a/crates/ruma-client-api/src/session/get_login_types.rs +++ b/crates/ruma-client-api/src/session/get_login_types.rs @@ -7,8 +7,11 @@ pub mod v3 { use std::borrow::Cow; - use ruma_common::{api::ruma_api, MxcUri}; - use ruma_serde::{JsonObject, StringEnum}; + use ruma_common::{ + api::ruma_api, + serde::{JsonObject, StringEnum}, + MxcUri, + }; use serde::{de::DeserializeOwned, Deserialize, Serialize}; use serde_json::Value as JsonValue; @@ -249,7 +252,7 @@ pub mod v3 { } mod login_type_serde { - use ruma_serde::from_raw_json_value; + use ruma_common::serde::from_raw_json_value; use serde::{de, Deserialize}; use serde_json::value::RawValue as RawJsonValue; diff --git a/crates/ruma-client-api/src/session/login.rs b/crates/ruma-client-api/src/session/login.rs index ffa589d7..39e08bd7 100644 --- a/crates/ruma-client-api/src/session/login.rs +++ b/crates/ruma-client-api/src/session/login.rs @@ -5,8 +5,11 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#post_matrixclientv3login - use ruma_common::{api::ruma_api, DeviceId, ServerName, UserId}; - use ruma_serde::{JsonObject, Outgoing}; + use ruma_common::{ + api::ruma_api, + serde::{JsonObject, Outgoing}, + DeviceId, ServerName, UserId, + }; use serde::{ de::{self, DeserializeOwned}, Deserialize, Deserializer, Serialize, diff --git a/crates/ruma-client-api/src/space.rs b/crates/ruma-client-api/src/space.rs index 9f8178ba..cf7ddaab 100644 --- a/crates/ruma-client-api/src/space.rs +++ b/crates/ruma-client-api/src/space.rs @@ -3,9 +3,8 @@ use js_int::UInt; use ruma_common::{ directory::PublicRoomJoinRule, events::space::child::HierarchySpaceChildStateEvent, - room::RoomType, MxcUri, RoomAliasId, RoomId, RoomName, + room::RoomType, serde::Raw, MxcUri, RoomAliasId, RoomId, RoomName, }; -use ruma_serde::Raw; use serde::{Deserialize, Serialize}; pub mod get_hierarchy; @@ -21,7 +20,7 @@ pub struct SpaceHierarchyRoomsChunk { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub canonical_alias: Option>, @@ -54,12 +53,12 @@ pub struct SpaceHierarchyRoomsChunk { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, /// The join rule of the room. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub join_rule: PublicRoomJoinRule, /// The type of room from `m.room.create`, if any. diff --git a/crates/ruma-client-api/src/space/get_hierarchy.rs b/crates/ruma-client-api/src/space/get_hierarchy.rs index a37054d1..1a1a04a8 100644 --- a/crates/ruma-client-api/src/space/get_hierarchy.rs +++ b/crates/ruma-client-api/src/space/get_hierarchy.rs @@ -49,7 +49,7 @@ pub mod v1 { /// /// Defaults to `false`. #[ruma_api(query)] - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub suggested_only: bool, } diff --git a/crates/ruma-client-api/src/state/get_state_events.rs b/crates/ruma-client-api/src/state/get_state_events.rs index f5dcebdf..f9974e6f 100644 --- a/crates/ruma-client-api/src/state/get_state_events.rs +++ b/crates/ruma-client-api/src/state/get_state_events.rs @@ -5,8 +5,7 @@ pub mod v3 { //! //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3roomsroomidstate - use ruma_common::{api::ruma_api, events::AnyStateEvent, RoomId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, events::AnyStateEvent, serde::Raw, RoomId}; ruma_api! { metadata: { diff --git a/crates/ruma-client-api/src/state/get_state_events_for_key.rs b/crates/ruma-client-api/src/state/get_state_events_for_key.rs index a9c51786..84021958 100644 --- a/crates/ruma-client-api/src/state/get_state_events_for_key.rs +++ b/crates/ruma-client-api/src/state/get_state_events_for_key.rs @@ -8,9 +8,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyStateEventContent, EventType}, + serde::{Outgoing, Raw}, RoomId, }; - use ruma_serde::{Outgoing, Raw}; ruma_api! { metadata: { @@ -70,7 +70,7 @@ pub mod v3 { #[cfg(feature = "client")] impl<'a> ruma_common::api::OutgoingRequest for Request<'a> { type EndpointError = crate::Error; - type IncomingResponse = ::Incoming; + type IncomingResponse = ::Incoming; const METADATA: ruma_common::api::Metadata = METADATA; diff --git a/crates/ruma-client-api/src/state/send_state_event.rs b/crates/ruma-client-api/src/state/send_state_event.rs index 5e7a1146..42a714a6 100644 --- a/crates/ruma-client-api/src/state/send_state_event.rs +++ b/crates/ruma-client-api/src/state/send_state_event.rs @@ -8,9 +8,9 @@ pub mod v3 { use ruma_common::{ api::ruma_api, events::{AnyStateEventContent, StateEventContent}, + serde::{Outgoing, Raw}, EventId, RoomId, }; - use ruma_serde::{Outgoing, Raw}; use serde_json::value::to_raw_value as to_raw_json_value; ruma_api! { @@ -147,7 +147,7 @@ pub mod v3 { .ok_or(ruma_common::api::error::IntoHttpError::NeedsAuthentication)? ))?, ) - .body(ruma_serde::json_to_buf(&self.body)?)?; + .body(ruma_common::serde::json_to_buf(&self.body)?)?; Ok(http_request) } diff --git a/crates/ruma-client-api/src/sync/sync_events.rs b/crates/ruma-client-api/src/sync/sync_events.rs index 2a7718c8..db85a484 100644 --- a/crates/ruma-client-api/src/sync/sync_events.rs +++ b/crates/ruma-client-api/src/sync/sync_events.rs @@ -16,9 +16,9 @@ pub mod v3 { AnyToDeviceEvent, }, presence::PresenceState, + serde::{Outgoing, Raw}, DeviceKeyAlgorithm, RoomId, UserId, }; - use ruma_serde::{Outgoing, Raw}; use serde::{Deserialize, Serialize}; use crate::filter::{FilterDefinition, IncomingFilterDefinition}; @@ -51,20 +51,20 @@ pub mod v3 { pub since: Option<&'a str>, /// Controls whether to include the full state for all rooms the user is a member of. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] #[ruma_api(query)] pub full_state: bool, /// Controls whether the client is automatically marked as online by polling this API. /// /// Defaults to `PresenceState::Online`. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] #[ruma_api(query)] pub set_presence: &'a PresenceState, /// The maximum time to poll in milliseconds before returning this request. #[serde( - with = "ruma_serde::duration::opt_ms", + with = "ruma_common::serde::duration::opt_ms", default, skip_serializing_if = "Option::is_none", )] @@ -154,7 +154,7 @@ pub mod v3 { // functionally equivalent to looking at whether the first symbol is a '{' as the spec // says. (there are probably some corner cases like leading whitespace) /// A complete filter definition serialized to JSON. - #[serde(with = "ruma_serde::json_string")] + #[serde(with = "ruma_common::serde::json_string")] FilterDefinition(FilterDefinition<'a>), /// The ID of a filter saved on the server. @@ -334,7 +334,7 @@ pub mod v3 { /// True if the number of events returned was limited by the `limit` on the filter. /// /// Default to `false`. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub limited: bool, /// A token that can be supplied to to the `from` parameter of the diff --git a/crates/ruma-client-api/src/to_device/send_event_to_device.rs b/crates/ruma-client-api/src/to_device/send_event_to_device.rs index 58fd6cc8..64ac3aa1 100644 --- a/crates/ruma-client-api/src/to_device/send_event_to_device.rs +++ b/crates/ruma-client-api/src/to_device/send_event_to_device.rs @@ -8,10 +8,9 @@ pub mod v3 { use std::collections::BTreeMap; use ruma_common::{ - api::ruma_api, events::AnyToDeviceEventContent, to_device::DeviceIdOrAllDevices, - TransactionId, UserId, + api::ruma_api, events::AnyToDeviceEventContent, serde::Raw, + to_device::DeviceIdOrAllDevices, TransactionId, UserId, }; - use ruma_serde::Raw; ruma_api! { metadata: { diff --git a/crates/ruma-client-api/src/typing/create_typing_event.rs b/crates/ruma-client-api/src/typing/create_typing_event.rs index c7a677bf..d77aee51 100644 --- a/crates/ruma-client-api/src/typing/create_typing_event.rs +++ b/crates/ruma-client-api/src/typing/create_typing_event.rs @@ -73,7 +73,7 @@ pub mod v3 { typing: bool, #[serde( - with = "ruma_serde::duration::opt_ms", + with = "ruma_common::serde::duration::opt_ms", default, skip_serializing_if = "Option::is_none" )] diff --git a/crates/ruma-client-api/src/uiaa.rs b/crates/ruma-client-api/src/uiaa.rs index f389d0b8..2a1d1d25 100644 --- a/crates/ruma-client-api/src/uiaa.rs +++ b/crates/ruma-client-api/src/uiaa.rs @@ -10,10 +10,10 @@ use ruma_common::{ error::{DeserializationError, IntoHttpError}, EndpointError, OutgoingResponse, }, + serde::{from_raw_json_value, JsonObject, Outgoing, StringEnum}, thirdparty::Medium, ClientSecret, SessionId, }; -use ruma_serde::{from_raw_json_value, JsonObject, Outgoing, StringEnum}; use serde::{ de::{self, DeserializeOwned}, Deserialize, Deserializer, Serialize, @@ -734,7 +734,7 @@ impl OutgoingResponse for UiaaResponse { UiaaResponse::AuthResponse(authentication_info) => http::Response::builder() .header(http::header::CONTENT_TYPE, "application/json") .status(&http::StatusCode::UNAUTHORIZED) - .body(ruma_serde::json_to_buf(&authentication_info)?) + .body(ruma_common::serde::json_to_buf(&authentication_info)?) .map_err(Into::into), UiaaResponse::MatrixError(error) => error.try_into_http_response(), } diff --git a/crates/ruma-client-api/src/uiaa/user_serde.rs b/crates/ruma-client-api/src/uiaa/user_serde.rs index 7b0b291f..c497bb60 100644 --- a/crates/ruma-client-api/src/uiaa/user_serde.rs +++ b/crates/ruma-client-api/src/uiaa/user_serde.rs @@ -1,8 +1,7 @@ //! Helper module for the Serialize / Deserialize impl's for the User struct //! in the parent module. -use ruma_common::thirdparty::Medium; -use ruma_serde::Outgoing; +use ruma_common::{serde::Outgoing, thirdparty::Medium}; use serde::Serialize; // The following structs could just be used in place of the one in the parent module, but diff --git a/crates/ruma-client-api/src/user_directory/search_users.rs b/crates/ruma-client-api/src/user_directory/search_users.rs index 7fbbff1f..57f8c9bd 100644 --- a/crates/ruma-client-api/src/user_directory/search_users.rs +++ b/crates/ruma-client-api/src/user_directory/search_users.rs @@ -91,7 +91,7 @@ pub mod v3 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, } diff --git a/crates/ruma-client-api/src/voip/get_turn_server_info.rs b/crates/ruma-client-api/src/voip/get_turn_server_info.rs index 0a1df9a6..3ceab436 100644 --- a/crates/ruma-client-api/src/voip/get_turn_server_info.rs +++ b/crates/ruma-client-api/src/voip/get_turn_server_info.rs @@ -35,7 +35,7 @@ pub mod v3 { pub uris: Vec, /// The time-to-live in seconds. - #[serde(with = "ruma_serde::duration::secs")] + #[serde(with = "ruma_common::serde::duration::secs")] pub ttl: Duration, } diff --git a/crates/ruma-client/Cargo.toml b/crates/ruma-client/Cargo.toml index 04c284fe..46d9760e 100644 --- a/crates/ruma-client/Cargo.toml +++ b/crates/ruma-client/Cargo.toml @@ -43,7 +43,6 @@ isahc-crate = { package = "isahc", version = "1.3.1", optional = true } reqwest = { version = "0.11.4", optional = true, default-features = false } ruma-client-api = { version = "0.13.0", path = "../ruma-client-api", optional = true, features = ["client"] } ruma-common = { version = "0.8.0", path = "../ruma-common", features = ["api"] } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } serde_json = "1.0.61" tracing = { version = "0.1.30", default-features = false, features = ["std"] } diff --git a/crates/ruma-client/src/lib.rs b/crates/ruma-client/src/lib.rs index 7ae93a52..85ee0ced 100644 --- a/crates/ruma-client/src/lib.rs +++ b/crates/ruma-client/src/lib.rs @@ -189,7 +189,7 @@ fn add_user_id_to_query( ) -> impl FnOnce(&mut http::Request) -> Result<(), ResponseError> + '_ { use assign::assign; use http::uri::Uri; - use ruma_serde::urlencoded; + use ruma_common::serde::urlencoded; move |http_request| { let extra_params = urlencoded::to_string(&[("user_id", user_id)]).unwrap(); diff --git a/crates/ruma-common/Cargo.toml b/crates/ruma-common/Cargo.toml index 7f1d0379..e18a4702 100644 --- a/crates/ruma-common/Cargo.toml +++ b/crates/ruma-common/Cargo.toml @@ -20,7 +20,7 @@ default = ["client", "server"] client = [] server = [] -api = ["bytes", "http", "thiserror"] +api = ["http", "thiserror"] compat = ["ruma-macros/compat", "ruma-identifiers-validation/compat"] events = ["indoc", "thiserror"] markdown = ["pulldown-cmark"] @@ -36,19 +36,21 @@ unstable-msc2677 = [] unstable-msc3551 = ["unstable-msc1767"] [dependencies] -bytes = { version = "1.0.1", optional = true } +base64 = "0.13.0" +bytes = "1.0.1" criterion = { version = "0.3.3", optional = true } either = { version = "1.6.1", optional = true } +form_urlencoded = "1.0.0" http = { version = "0.2.2", optional = true } indexmap = { version = "1.6.2", features = ["serde-1"] } indoc = { version = "1.0", optional = true } +itoa = "1.0.1" js_int = { version = "0.2.0", features = ["serde"] } percent-encoding = "2.1.0" pulldown-cmark = { version = "0.8", default-features = false, optional = true } rand_crate = { package = "rand", version = "0.8.3", optional = true } ruma-identifiers-validation = { version = "0.7.0", path = "../ruma-identifiers-validation", default-features = false } ruma-macros = { version = "=0.1.0", path = "../ruma-macros" } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } serde_json = { version = "1.0.64", features = ["raw_value"] } thiserror = { version = "1.0.26", optional = true } @@ -59,11 +61,9 @@ wildmatch = "2.0.0" [dev-dependencies] assign = "1.1.1" -bytes = "1.0.1" http = "0.2.2" maplit = "1.0.2" matches = "0.1.8" -ruma-macros = { version = "=0.1.0", path = "../ruma-macros" } trybuild = "1.0.42" [[bench]] diff --git a/crates/ruma-common/benches/event_deserialize.rs b/crates/ruma-common/benches/event_deserialize.rs index 756f78de..2fd3d81a 100644 --- a/crates/ruma-common/benches/event_deserialize.rs +++ b/crates/ruma-common/benches/event_deserialize.rs @@ -9,10 +9,12 @@ #[cfg(feature = "criterion")] use criterion::{criterion_group, criterion_main, Criterion}; -use ruma_common::events::{ - room::power_levels::RoomPowerLevelsEventContent, AnyRoomEvent, AnyStateEvent, StateEvent, +use ruma_common::{ + events::{ + room::power_levels::RoomPowerLevelsEventContent, AnyRoomEvent, AnyStateEvent, StateEvent, + }, + serde::Raw, }; -use ruma_serde::Raw; use serde_json::json; fn power_levels() -> serde_json::Value { diff --git a/crates/ruma-common/src/api.rs b/crates/ruma-common/src/api.rs index ef1031bc..3620bf83 100644 --- a/crates/ruma-common/src/api.rs +++ b/crates/ruma-common/src/api.rs @@ -301,7 +301,7 @@ pub trait OutgoingRequestAppserviceExt: OutgoingRequest { ) -> Result, IntoHttpError> { let mut http_request = self.try_into_http_request(base_url, access_token, considering_versions)?; - let user_id_query = ruma_serde::urlencoded::to_string(&[("user_id", user_id)])?; + let user_id_query = crate::serde::urlencoded::to_string(&[("user_id", user_id)])?; let uri = http_request.uri().to_owned(); let mut parts = uri.into_parts(); diff --git a/crates/ruma-common/src/api/error.rs b/crates/ruma-common/src/api/error.rs index 11e260be..55534894 100644 --- a/crates/ruma-common/src/api/error.rs +++ b/crates/ruma-common/src/api/error.rs @@ -39,7 +39,7 @@ impl OutgoingResponse for MatrixError { http::Response::builder() .header(http::header::CONTENT_TYPE, "application/json") .status(self.status_code) - .body(ruma_serde::json_to_buf(&self.body)?) + .body(crate::serde::json_to_buf(&self.body)?) .map_err(Into::into) } } @@ -85,7 +85,7 @@ pub enum IntoHttpError { /// Query parameter serialization failed. #[error("Query parameter serialization failed: {0}")] - Query(#[from] ruma_serde::urlencoded::ser::Error), + Query(#[from] crate::serde::urlencoded::ser::Error), /// Header serialization failed. #[error("Header serialization failed: {0}")] @@ -198,7 +198,7 @@ pub enum DeserializationError { /// Query parameter deserialization failed. #[error("{0}")] - Query(#[from] ruma_serde::urlencoded::de::Error), + Query(#[from] crate::serde::urlencoded::de::Error), /// Got an invalid identifier. #[error("{0}")] diff --git a/crates/ruma-common/src/authentication.rs b/crates/ruma-common/src/authentication.rs index 4fe2a107..8383c42b 100644 --- a/crates/ruma-common/src/authentication.rs +++ b/crates/ruma-common/src/authentication.rs @@ -1,8 +1,6 @@ //! Common types for authentication. -use ruma_serde::StringEnum; - -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; /// Access token types. /// diff --git a/crates/ruma-common/src/directory.rs b/crates/ruma-common/src/directory.rs index 23366a68..c44405d4 100644 --- a/crates/ruma-common/src/directory.rs +++ b/crates/ruma-common/src/directory.rs @@ -2,8 +2,8 @@ use std::fmt; +use crate::serde::{Outgoing, StringEnum}; use js_int::UInt; -use ruma_serde::{Outgoing, StringEnum}; use serde::{ de::{Error, MapAccess, Visitor}, ser::SerializeStruct, @@ -24,7 +24,7 @@ pub struct PublicRoomsChunk { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "crate::serde::empty_string_as_none") )] pub canonical_alias: Option>, @@ -57,12 +57,12 @@ pub struct PublicRoomsChunk { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "crate::serde::empty_string_as_none") )] pub avatar_url: Option>, /// The join rule of the room. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "crate::serde::is_default")] pub join_rule: PublicRoomJoinRule, } diff --git a/crates/ruma-common/src/encryption.rs b/crates/ruma-common/src/encryption.rs index 74b125af..027f2ebf 100644 --- a/crates/ruma-common/src/encryption.rs +++ b/crates/ruma-common/src/encryption.rs @@ -4,10 +4,9 @@ use std::collections::BTreeMap; -use ruma_serde::Base64; use serde::{Deserialize, Serialize}; -use crate::{DeviceId, DeviceKeyId, EventEncryptionAlgorithm, UserId}; +use crate::{serde::Base64, DeviceId, DeviceKeyId, EventEncryptionAlgorithm, UserId}; /// Identity keys for a device. #[derive(Clone, Debug, Deserialize, Serialize)] @@ -87,7 +86,7 @@ pub struct SignedKey { pub signatures: SignedKeySignatures, /// Is this key considered to be a fallback key, defaults to false. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "crate::serde::is_default")] pub fallback: bool, } diff --git a/crates/ruma-common/src/events.rs b/crates/ruma-common/src/events.rs index cbd945ba..d47ff8d9 100644 --- a/crates/ruma-common/src/events.rs +++ b/crates/ruma-common/src/events.rs @@ -126,12 +126,11 @@ //! type alias), allowing content to be converted to and from JSON independently of the surrounding //! event structure, if needed. -use ruma_serde::Raw; use serde::{de::IgnoredAny, Deserialize, Serialize, Serializer}; use serde_json::value::RawValue as RawJsonValue; use self::room::redaction::SyncRoomRedactionEvent; -use crate::{EventEncryptionAlgorithm, RoomVersionId}; +use crate::{serde::Raw, EventEncryptionAlgorithm, RoomVersionId}; // Needs to be public for trybuild tests #[doc(hidden)] @@ -227,7 +226,7 @@ pub trait RedactContent { fn redact(self, version: &RoomVersionId) -> Self::Redacted; } -/// Extension trait for [`Raw<_>`][ruma_serde::Raw]. +/// Extension trait for [`Raw<_>`][crate::serde::Raw]. pub trait RawExt { /// Try to deserialize the JSON as an event's content. fn deserialize_content(&self, event_type: &str) -> serde_json::Result; diff --git a/crates/ruma-common/src/events/call.rs b/crates/ruma-common/src/events/call.rs index cc6f81d5..2a4aafe1 100644 --- a/crates/ruma-common/src/events/call.rs +++ b/crates/ruma-common/src/events/call.rs @@ -2,10 +2,9 @@ //! //! This module also contains types shared by events in its child namespaces. -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; pub mod answer; pub mod candidates; diff --git a/crates/ruma-common/src/events/call/hangup.rs b/crates/ruma-common/src/events/call/hangup.rs index 211b1c45..ca0d36f0 100644 --- a/crates/ruma-common/src/events/call/hangup.rs +++ b/crates/ruma-common/src/events/call/hangup.rs @@ -4,10 +4,9 @@ use js_int::UInt; use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; /// The content of an `m.call.hangup` event. /// diff --git a/crates/ruma-common/src/events/enums.rs b/crates/ruma-common/src/events/enums.rs index cc69fa0c..44c152b8 100644 --- a/crates/ruma-common/src/events/enums.rs +++ b/crates/ruma-common/src/events/enums.rs @@ -1,5 +1,4 @@ use ruma_macros::{event_enum, EventEnumFromEvent}; -use ruma_serde::from_raw_json_value; use serde::{de, Deserialize}; use serde_json::value::RawValue as RawJsonValue; @@ -8,7 +7,9 @@ use super::{ room::{encrypted, redaction::SyncRoomRedactionEvent}, Redact, UnsignedDeHelper, }; -use crate::{EventId, MilliSecondsSinceUnixEpoch, RoomId, RoomVersionId, UserId}; +use crate::{ + serde::from_raw_json_value, EventId, MilliSecondsSinceUnixEpoch, RoomId, RoomVersionId, UserId, +}; event_enum! { /// Any global account data event. diff --git a/crates/ruma-common/src/events/file.rs b/crates/ruma-common/src/events/file.rs index 789223e5..1a1ac38b 100644 --- a/crates/ruma-common/src/events/file.rs +++ b/crates/ruma-common/src/events/file.rs @@ -6,14 +6,13 @@ use std::collections::BTreeMap; use js_int::UInt; use ruma_macros::EventContent; -use ruma_serde::Base64; use serde::{Deserialize, Serialize}; use super::{ message::MessageContent, room::{message::Relation, JsonWebKey}, }; -use crate::MxcUri; +use crate::{serde::Base64, MxcUri}; /// The encryption info of a file sent to a room with end-to-end encryption enabled. /// diff --git a/crates/ruma-common/src/events/ignored_user_list.rs b/crates/ruma-common/src/events/ignored_user_list.rs index d8ed6472..d79a9652 100644 --- a/crates/ruma-common/src/events/ignored_user_list.rs +++ b/crates/ruma-common/src/events/ignored_user_list.rs @@ -15,7 +15,7 @@ use crate::UserId; #[ruma_event(type = "m.ignored_user_list", kind = GlobalAccountData)] pub struct IgnoredUserListEventContent { /// A list of users to ignore. - #[serde(with = "ruma_serde::vec_as_map_of_empty")] + #[serde(with = "crate::serde::vec_as_map_of_empty")] pub ignored_users: Vec>, } diff --git a/crates/ruma-common/src/events/key/verification.rs b/crates/ruma-common/src/events/key/verification.rs index 65aa11f9..3a1a69ed 100644 --- a/crates/ruma-common/src/events/key/verification.rs +++ b/crates/ruma-common/src/events/key/verification.rs @@ -7,10 +7,9 @@ //! //! [MSC2241]: https://github.com/matrix-org/matrix-spec-proposals/pull/2241 -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::{EventId, PrivOwnedStr}; +use crate::{serde::StringEnum, EventId, PrivOwnedStr}; pub mod accept; pub mod cancel; diff --git a/crates/ruma-common/src/events/key/verification/accept.rs b/crates/ruma-common/src/events/key/verification/accept.rs index 6457f17e..c74b2ef0 100644 --- a/crates/ruma-common/src/events/key/verification/accept.rs +++ b/crates/ruma-common/src/events/key/verification/accept.rs @@ -5,7 +5,6 @@ use std::collections::BTreeMap; use ruma_macros::EventContent; -use ruma_serde::Base64; use serde::{Deserialize, Serialize}; use serde_json::Value as JsonValue; @@ -13,7 +12,7 @@ use super::{ HashAlgorithm, KeyAgreementProtocol, MessageAuthenticationCode, Relation, ShortAuthenticationString, }; -use crate::TransactionId; +use crate::{serde::Base64, TransactionId}; /// The content of a to-device `m.key.verification.accept` event. /// @@ -165,9 +164,8 @@ impl From for SasV1Content { mod tests { use std::collections::BTreeMap; - use crate::{event_id, user_id}; + use crate::{event_id, serde::Base64, user_id}; use matches::assert_matches; - use ruma_serde::Base64; use serde_json::{ from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue, }; diff --git a/crates/ruma-common/src/events/key/verification/cancel.rs b/crates/ruma-common/src/events/key/verification/cancel.rs index e5b0b08c..be9d282f 100644 --- a/crates/ruma-common/src/events/key/verification/cancel.rs +++ b/crates/ruma-common/src/events/key/verification/cancel.rs @@ -3,11 +3,10 @@ //! [`m.key.verification.cancel`]: https://spec.matrix.org/v1.2/client-server-api/#mkeyverificationcancel use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; use super::Relation; -use crate::{PrivOwnedStr, TransactionId}; +use crate::{serde::StringEnum, PrivOwnedStr, TransactionId}; /// The content of a to-device `m.key.verification.cancel` event. /// diff --git a/crates/ruma-common/src/events/key/verification/key.rs b/crates/ruma-common/src/events/key/verification/key.rs index 27399983..edd419e9 100644 --- a/crates/ruma-common/src/events/key/verification/key.rs +++ b/crates/ruma-common/src/events/key/verification/key.rs @@ -3,11 +3,10 @@ //! [`m.key.verification.key`]: https://spec.matrix.org/v1.2/client-server-api/#mkeyverificationkey use ruma_macros::EventContent; -use ruma_serde::Base64; use serde::{Deserialize, Serialize}; use super::Relation; -use crate::TransactionId; +use crate::{serde::Base64, TransactionId}; /// The content of a to-device `m.key.verification.key` event. /// diff --git a/crates/ruma-common/src/events/key/verification/mac.rs b/crates/ruma-common/src/events/key/verification/mac.rs index 593eaf51..758c7d09 100644 --- a/crates/ruma-common/src/events/key/verification/mac.rs +++ b/crates/ruma-common/src/events/key/verification/mac.rs @@ -5,11 +5,10 @@ use std::collections::BTreeMap; use ruma_macros::EventContent; -use ruma_serde::Base64; use serde::{Deserialize, Serialize}; use super::Relation; -use crate::TransactionId; +use crate::{serde::Base64, TransactionId}; /// The content of a to-device `m.key.verification.` event. /// diff --git a/crates/ruma-common/src/events/key/verification/start.rs b/crates/ruma-common/src/events/key/verification/start.rs index 709826ae..1ef2bb2a 100644 --- a/crates/ruma-common/src/events/key/verification/start.rs +++ b/crates/ruma-common/src/events/key/verification/start.rs @@ -5,7 +5,6 @@ use std::collections::BTreeMap; use ruma_macros::EventContent; -use ruma_serde::Base64; use serde::{Deserialize, Serialize}; use serde_json::Value as JsonValue; @@ -13,7 +12,7 @@ use super::{ HashAlgorithm, KeyAgreementProtocol, MessageAuthenticationCode, Relation, ShortAuthenticationString, }; -use crate::{DeviceId, TransactionId}; +use crate::{serde::Base64, DeviceId, TransactionId}; /// The content of a to-device `m.key.verification.start` event. /// @@ -200,9 +199,8 @@ impl From for SasV1Content { mod tests { use std::collections::BTreeMap; - use crate::{event_id, user_id}; + use crate::{event_id, serde::Base64, user_id}; use matches::assert_matches; - use ruma_serde::Base64; use serde_json::{ from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue, }; diff --git a/crates/ruma-common/src/events/policy/rule.rs b/crates/ruma-common/src/events/policy/rule.rs index 1909dd80..19fa5ddf 100644 --- a/crates/ruma-common/src/events/policy/rule.rs +++ b/crates/ruma-common/src/events/policy/rule.rs @@ -1,9 +1,8 @@ //! Modules and types for events in the `m.policy.rule` namespace. -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; pub mod room; pub mod server; diff --git a/crates/ruma-common/src/events/policy/rule/room.rs b/crates/ruma-common/src/events/policy/rule/room.rs index 528d6f53..9f392b76 100644 --- a/crates/ruma-common/src/events/policy/rule/room.rs +++ b/crates/ruma-common/src/events/policy/rule/room.rs @@ -20,7 +20,6 @@ mod tests { use std::convert::TryInto; use js_int::int; - use ruma_serde::Raw; use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; use super::{PolicyRuleRoomEvent, PolicyRuleRoomEventContent}; @@ -30,7 +29,9 @@ mod tests { policy::rule::{PolicyRuleEventContent, Recommendation}, Unsigned, }, - room_id, user_id, MilliSecondsSinceUnixEpoch, + room_id, + serde::Raw, + user_id, MilliSecondsSinceUnixEpoch, }; #[test] diff --git a/crates/ruma-common/src/events/presence.rs b/crates/ruma-common/src/events/presence.rs index d6248a29..926eef82 100644 --- a/crates/ruma-common/src/events/presence.rs +++ b/crates/ruma-common/src/events/presence.rs @@ -34,7 +34,7 @@ pub struct PresenceEventContent { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "crate::serde::empty_string_as_none") )] pub avatar_url: Option>, diff --git a/crates/ruma-common/src/events/room.rs b/crates/ruma-common/src/events/room.rs index a17be147..1cf0c2e4 100644 --- a/crates/ruma-common/src/events/room.rs +++ b/crates/ruma-common/src/events/room.rs @@ -5,10 +5,12 @@ use std::collections::BTreeMap; use js_int::UInt; -use ruma_serde::{base64::UrlSafe, Base64}; use serde::{Deserialize, Serialize}; -use crate::MxcUri; +use crate::{ + serde::{base64::UrlSafe, Base64}, + MxcUri, +}; pub mod aliases; pub mod avatar; diff --git a/crates/ruma-common/src/events/room/canonical_alias.rs b/crates/ruma-common/src/events/room/canonical_alias.rs index b60ae7cc..9fadfcf8 100644 --- a/crates/ruma-common/src/events/room/canonical_alias.rs +++ b/crates/ruma-common/src/events/room/canonical_alias.rs @@ -20,7 +20,7 @@ pub struct RoomCanonicalAliasEventContent { /// with no canonical alias. #[serde( default, - deserialize_with = "ruma_serde::empty_string_as_none", + deserialize_with = "crate::serde::empty_string_as_none", skip_serializing_if = "Option::is_none" )] pub alias: Option>, diff --git a/crates/ruma-common/src/events/room/create.rs b/crates/ruma-common/src/events/room/create.rs index cd5e37b1..22f32cd0 100644 --- a/crates/ruma-common/src/events/room/create.rs +++ b/crates/ruma-common/src/events/room/create.rs @@ -25,8 +25,8 @@ pub struct RoomCreateEventContent { /// Whether or not this room's data should be transferred to other homeservers. #[serde( rename = "m.federate", - default = "ruma_serde::default_true", - skip_serializing_if = "ruma_serde::is_true" + default = "crate::serde::default_true", + skip_serializing_if = "crate::serde::is_true" )] pub federate: bool, diff --git a/crates/ruma-common/src/events/room/encrypted.rs b/crates/ruma-common/src/events/room/encrypted.rs index 6ad83192..5b71148a 100644 --- a/crates/ruma-common/src/events/room/encrypted.rs +++ b/crates/ruma-common/src/events/room/encrypted.rs @@ -257,9 +257,8 @@ impl From for MegolmV1AesSha2Content { #[cfg(test)] mod tests { - use crate::event_id; + use crate::{event_id, serde::Raw}; use matches::assert_matches; - use ruma_serde::Raw; use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; use super::{ diff --git a/crates/ruma-common/src/events/room/guest_access.rs b/crates/ruma-common/src/events/room/guest_access.rs index 8246940a..de90f174 100644 --- a/crates/ruma-common/src/events/room/guest_access.rs +++ b/crates/ruma-common/src/events/room/guest_access.rs @@ -3,10 +3,9 @@ //! [`m.room.guest_access`]: https://spec.matrix.org/v1.2/client-server-api/#mroomguest_access use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; /// The content of an `m.room.guest_access` event. /// diff --git a/crates/ruma-common/src/events/room/history_visibility.rs b/crates/ruma-common/src/events/room/history_visibility.rs index ee3db014..decf806b 100644 --- a/crates/ruma-common/src/events/room/history_visibility.rs +++ b/crates/ruma-common/src/events/room/history_visibility.rs @@ -3,10 +3,9 @@ //! [`m.room.history_visibility`]: https://spec.matrix.org/v1.2/client-server-api/#mroomhistory_visibility use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; /// The content of an `m.room.history_visibility` event. /// diff --git a/crates/ruma-common/src/events/room/join_rules.rs b/crates/ruma-common/src/events/room/join_rules.rs index 3685ec3f..c549d845 100644 --- a/crates/ruma-common/src/events/room/join_rules.rs +++ b/crates/ruma-common/src/events/room/join_rules.rs @@ -5,14 +5,13 @@ use std::{borrow::Cow, collections::BTreeMap}; use ruma_macros::EventContent; -use ruma_serde::from_raw_json_value; use serde::{ de::{Deserializer, Error}, Deserialize, Serialize, }; use serde_json::{value::RawValue as RawJsonValue, Value as JsonValue}; -use crate::{PrivOwnedStr, RoomId}; +use crate::{serde::from_raw_json_value, PrivOwnedStr, RoomId}; /// The content of an `m.room.join_rules` event. /// diff --git a/crates/ruma-common/src/events/room/member.rs b/crates/ruma-common/src/events/room/member.rs index 033bcf9e..4bd4e11c 100644 --- a/crates/ruma-common/src/events/room/member.rs +++ b/crates/ruma-common/src/events/room/member.rs @@ -5,7 +5,6 @@ use std::collections::BTreeMap; use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; use serde_json::value::RawValue as RawJsonValue; @@ -14,6 +13,7 @@ use crate::{ EventContent, HasDeserializeFields, RedactContent, RedactedEventContent, RedactedStateEventContent, StrippedStateEvent, SyncStateEvent, }, + serde::StringEnum, MxcUri, PrivOwnedStr, RoomVersionId, ServerName, ServerSigningKeyId, UserId, }; @@ -55,7 +55,7 @@ pub struct RoomMemberEventContent { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "crate::serde::empty_string_as_none") )] pub avatar_url: Option>, diff --git a/crates/ruma-common/src/events/room/message.rs b/crates/ruma-common/src/events/room/message.rs index fd3d3fa5..12282456 100644 --- a/crates/ruma-common/src/events/room/message.rs +++ b/crates/ruma-common/src/events/room/message.rs @@ -6,13 +6,14 @@ use std::{borrow::Cow, fmt}; use js_int::UInt; use ruma_macros::EventContent; -use ruma_serde::{JsonObject, StringEnum}; use serde::{de::DeserializeOwned, Deserialize, Serialize}; use serde_json::Value as JsonValue; use super::{EncryptedFile, ImageInfo, ThumbnailInfo}; use crate::{ - events::key::verification::VerificationMethod, DeviceId, EventId, MxcUri, PrivOwnedStr, UserId, + events::key::verification::VerificationMethod, + serde::{JsonObject, StringEnum}, + DeviceId, EventId, MxcUri, PrivOwnedStr, UserId, }; mod content_serde; diff --git a/crates/ruma-common/src/events/room/message/content_serde.rs b/crates/ruma-common/src/events/room/message/content_serde.rs index 1b7d482f..f2d3b770 100644 --- a/crates/ruma-common/src/events/room/message/content_serde.rs +++ b/crates/ruma-common/src/events/room/message/content_serde.rs @@ -1,10 +1,10 @@ //! `Deserialize` implementation for RoomMessageEventContent and MessageType. -use ruma_serde::from_raw_json_value; use serde::{de, Deserialize}; use serde_json::value::RawValue as RawJsonValue; use super::{MessageType, Relation, RoomMessageEventContent}; +use crate::serde::from_raw_json_value; impl<'de> Deserialize<'de> for RoomMessageEventContent { fn deserialize(deserializer: D) -> Result diff --git a/crates/ruma-common/src/events/room/message/feedback.rs b/crates/ruma-common/src/events/room/message/feedback.rs index 5552aa1c..4239f068 100644 --- a/crates/ruma-common/src/events/room/message/feedback.rs +++ b/crates/ruma-common/src/events/room/message/feedback.rs @@ -3,10 +3,9 @@ //! [`m.room.message.feedback`]: https://spec.matrix.org/v1.2/client-server-api/#mroommessagefeedback use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::{EventId, PrivOwnedStr}; +use crate::{serde::StringEnum, EventId, PrivOwnedStr}; /// The content of an `m.room.message.feedback` event. /// diff --git a/crates/ruma-common/src/events/room/name.rs b/crates/ruma-common/src/events/room/name.rs index aac3aefc..3df352d0 100644 --- a/crates/ruma-common/src/events/room/name.rs +++ b/crates/ruma-common/src/events/room/name.rs @@ -15,7 +15,7 @@ use crate::RoomName; #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] pub struct RoomNameEventContent { /// The name of the room. - #[serde(default, deserialize_with = "ruma_serde::empty_string_as_none")] + #[serde(default, deserialize_with = "crate::serde::empty_string_as_none")] pub name: Option>, } @@ -30,10 +30,9 @@ impl RoomNameEventContent { mod tests { use std::convert::TryInto; - use crate::{event_id, room_id, user_id, MilliSecondsSinceUnixEpoch}; + use crate::{event_id, room_id, serde::Raw, user_id, MilliSecondsSinceUnixEpoch}; use js_int::{int, uint}; use matches::assert_matches; - use ruma_serde::Raw; use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; use super::RoomNameEventContent; diff --git a/crates/ruma-common/src/events/room/power_levels.rs b/crates/ruma-common/src/events/room/power_levels.rs index e4b4e063..2405b06f 100644 --- a/crates/ruma-common/src/events/room/power_levels.rs +++ b/crates/ruma-common/src/events/room/power_levels.rs @@ -27,7 +27,7 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] #[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")] #[ruma_event(skip_redaction)] @@ -41,7 +41,7 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::btreemap_deserialize_v1_powerlevel_values") + serde(deserialize_with = "crate::serde::btreemap_deserialize_v1_powerlevel_values") )] #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] #[ruma_event(skip_redaction)] @@ -53,9 +53,9 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "crate::serde::is_default")] #[ruma_event(skip_redaction)] pub events_default: Int, @@ -65,7 +65,7 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] #[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")] pub invite: Int, @@ -76,7 +76,7 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] #[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")] #[ruma_event(skip_redaction)] @@ -88,7 +88,7 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] #[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")] #[ruma_event(skip_redaction)] @@ -100,7 +100,7 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] #[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")] #[ruma_event(skip_redaction)] @@ -114,7 +114,7 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::btreemap_deserialize_v1_powerlevel_values") + serde(deserialize_with = "crate::serde::btreemap_deserialize_v1_powerlevel_values") )] #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] #[ruma_event(skip_redaction)] @@ -126,16 +126,16 @@ pub struct RoomPowerLevelsEventContent { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "crate::serde::is_default")] #[ruma_event(skip_redaction)] pub users_default: Int, /// The power level requirements for specific notification types. /// /// This is a mapping from `key` to power level for that notifications key. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "crate::serde::is_default")] pub notifications: NotificationPowerLevels, } diff --git a/crates/ruma-common/src/events/room/server_acl.rs b/crates/ruma-common/src/events/room/server_acl.rs index 169e09f4..6aa01d05 100644 --- a/crates/ruma-common/src/events/room/server_acl.rs +++ b/crates/ruma-common/src/events/room/server_acl.rs @@ -20,7 +20,7 @@ pub struct RoomServerAclEventContent { /// This is strongly recommended to be set to false as servers running with IP literal names /// are strongly discouraged in order to require legitimate homeservers to be backed by a /// valid registered domain name. - #[serde(default = "ruma_serde::default_true", skip_serializing_if = "ruma_serde::is_true")] + #[serde(default = "crate::serde::default_true", skip_serializing_if = "crate::serde::is_true")] pub allow_ip_literals: bool, /// The server names to allow in the room, excluding any port information. diff --git a/crates/ruma-common/src/events/room/third_party_invite.rs b/crates/ruma-common/src/events/room/third_party_invite.rs index df29ff76..e8c6e327 100644 --- a/crates/ruma-common/src/events/room/third_party_invite.rs +++ b/crates/ruma-common/src/events/room/third_party_invite.rs @@ -3,9 +3,10 @@ //! [`m.room.third_party_invite`]: https://spec.matrix.org/v1.2/client-server-api/#mroomthird_party_invite use ruma_macros::EventContent; -use ruma_serde::Base64; use serde::{Deserialize, Serialize}; +use crate::serde::Base64; + /// The content of an `m.room.third_party_invite` event. /// /// An invitation to a room issued to a third party identifier, rather than a matrix user ID. diff --git a/crates/ruma-common/src/events/room_key_request.rs b/crates/ruma-common/src/events/room_key_request.rs index aaef5dc7..1e22b131 100644 --- a/crates/ruma-common/src/events/room_key_request.rs +++ b/crates/ruma-common/src/events/room_key_request.rs @@ -3,10 +3,11 @@ //! [`m.room_key_request`]: https://spec.matrix.org/v1.2/client-server-api/#mroom_key_request use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::{DeviceId, EventEncryptionAlgorithm, PrivOwnedStr, RoomId, TransactionId}; +use crate::{ + serde::StringEnum, DeviceId, EventEncryptionAlgorithm, PrivOwnedStr, RoomId, TransactionId, +}; /// The content of an `m.room_key_request` event. #[derive(Clone, Debug, Deserialize, Serialize, EventContent)] diff --git a/crates/ruma-common/src/events/secret/request.rs b/crates/ruma-common/src/events/secret/request.rs index 9adc398f..a797a41e 100644 --- a/crates/ruma-common/src/events/secret/request.rs +++ b/crates/ruma-common/src/events/secret/request.rs @@ -5,10 +5,9 @@ use std::convert::TryFrom; use ruma_macros::EventContent; -use ruma_serde::StringEnum; use serde::{ser::SerializeStruct, Deserialize, Serialize}; -use crate::{DeviceId, PrivOwnedStr, TransactionId}; +use crate::{serde::StringEnum, DeviceId, PrivOwnedStr, TransactionId}; /// The content of an `m.secret.request` event. /// diff --git a/crates/ruma-common/src/events/tag.rs b/crates/ruma-common/src/events/tag.rs index d561b2d9..5aacfb2a 100644 --- a/crates/ruma-common/src/events/tag.rs +++ b/crates/ruma-common/src/events/tag.rs @@ -5,10 +5,9 @@ use std::{collections::BTreeMap, error::Error, fmt, str::FromStr}; use ruma_macros::EventContent; -use ruma_serde::deserialize_cow_str; use serde::{Deserialize, Serialize}; -use crate::PrivOwnedStr; +use crate::{serde::deserialize_cow_str, PrivOwnedStr}; /// Map of tag names to tag info. pub type Tags = BTreeMap; diff --git a/crates/ruma-common/src/identifiers.rs b/crates/ruma-common/src/identifiers.rs index 9ed035e1..843c6286 100644 --- a/crates/ruma-common/src/identifiers.rs +++ b/crates/ruma-common/src/identifiers.rs @@ -77,7 +77,7 @@ where D: Deserializer<'de>, T: for<'a> TryFrom<&'a str>, { - ruma_serde::deserialize_cow_str(deserializer).and_then(|v| { + crate::serde::deserialize_cow_str(deserializer).and_then(|v| { T::try_from(&v).map_err(|_| de::Error::invalid_value(Unexpected::Str(&v), &expected_str)) }) } diff --git a/crates/ruma-common/src/identifiers/crypto_algorithms.rs b/crates/ruma-common/src/identifiers/crypto_algorithms.rs index 9cf29c68..ff484b13 100644 --- a/crates/ruma-common/src/identifiers/crypto_algorithms.rs +++ b/crates/ruma-common/src/identifiers/crypto_algorithms.rs @@ -80,10 +80,10 @@ mod tests { #[test] fn event_encryption_algorithm_serde() { - use ruma_serde::test::serde_json_eq; use serde_json::json; use super::EventEncryptionAlgorithm; + use crate::serde::test::serde_json_eq; serde_json_eq(EventEncryptionAlgorithm::MegolmV1AesSha2, json!("m.megolm.v1.aes-sha2")); serde_json_eq( diff --git a/crates/ruma-common/src/lib.rs b/crates/ruma-common/src/lib.rs index d8caf213..b12a8e82 100644 --- a/crates/ruma-common/src/lib.rs +++ b/crates/ruma-common/src/lib.rs @@ -33,6 +33,7 @@ pub mod presence; pub mod push; pub mod receipt; pub mod room; +pub mod serde; pub mod thirdparty; mod time; pub mod to_device; @@ -66,7 +67,6 @@ pub mod exports { pub use http; pub use percent_encoding; pub use ruma_macros; - pub use ruma_serde; pub use serde; pub use serde_json; } diff --git a/crates/ruma-common/src/power_levels.rs b/crates/ruma-common/src/power_levels.rs index adc73a45..f59b4740 100644 --- a/crates/ruma-common/src/power_levels.rs +++ b/crates/ruma-common/src/power_levels.rs @@ -15,7 +15,7 @@ pub struct NotificationPowerLevels { /// integers too. #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "crate::serde::deserialize_v1_powerlevel") )] #[serde(default = "default_power_level")] pub room: Int, diff --git a/crates/ruma-common/src/presence.rs b/crates/ruma-common/src/presence.rs index 8aa9f3cc..88db258e 100644 --- a/crates/ruma-common/src/presence.rs +++ b/crates/ruma-common/src/presence.rs @@ -2,9 +2,7 @@ //! //! [presence]: https://spec.matrix.org/v1.2/client-server-api/#presence -use ruma_serde::StringEnum; - -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; /// A description of a user's connectivity and availability for chat. /// diff --git a/crates/ruma-common/src/push.rs b/crates/ruma-common/src/push.rs index 2a598534..e8f2549e 100644 --- a/crates/ruma-common/src/push.rs +++ b/crates/ruma-common/src/push.rs @@ -17,13 +17,15 @@ use std::hash::{Hash, Hasher}; use indexmap::{Equivalent, IndexSet}; -use ruma_serde::{Raw, StringEnum}; use serde::{Deserialize, Serialize}; #[cfg(feature = "unstable-pre-spec")] use serde_json::Value as JsonValue; use tracing::instrument; -use crate::PrivOwnedStr; +use crate::{ + serde::{Raw, StringEnum}, + PrivOwnedStr, +}; mod action; mod condition; @@ -466,7 +468,6 @@ mod tests { use js_int::uint; use matches::assert_matches; - use ruma_serde::Raw; use serde_json::{ from_value as from_json_value, json, to_value as to_json_value, value::RawValue as RawJsonValue, Value as JsonValue, @@ -477,7 +478,7 @@ mod tests { condition::{PushCondition, PushConditionRoomCtx, RoomMemberCountIs}, AnyPushRule, ConditionalPushRule, PatternedPushRule, Ruleset, SimplePushRule, }; - use crate::{power_levels::NotificationPowerLevels, room_id, user_id}; + use crate::{power_levels::NotificationPowerLevels, room_id, serde::Raw, user_id}; fn example_ruleset() -> Ruleset { let mut set = Ruleset::new(); diff --git a/crates/ruma-common/src/push/action.rs b/crates/ruma-common/src/push/action.rs index 9a293167..8d86c804 100644 --- a/crates/ruma-common/src/push/action.rs +++ b/crates/ruma-common/src/push/action.rs @@ -42,7 +42,7 @@ pub enum Tweak { /// event occurred. If a `highlight` tweak is given with no value, its value is defined to be /// `true`. If no highlight tweak is given at all then the value of `highlight` is defined to /// be `false`. - Highlight(#[serde(default = "ruma_serde::default_true")] bool), + Highlight(#[serde(default = "crate::serde::default_true")] bool), /// A custom tweak Custom { @@ -136,7 +136,10 @@ mod tweak_serde { #[derive(Clone, PartialEq, Deserialize, Serialize)] #[serde(tag = "set_tweak", rename = "highlight")] pub(crate) struct HighlightTweak { - #[serde(default = "ruma_serde::default_true", skip_serializing_if = "ruma_serde::is_true")] + #[serde( + default = "crate::serde::default_true", + skip_serializing_if = "crate::serde::is_true" + )] value: bool, } diff --git a/crates/ruma-common/src/push/condition.rs b/crates/ruma-common/src/push/condition.rs index 8f3dcc41..68f87ecf 100644 --- a/crates/ruma-common/src/push/condition.rs +++ b/crates/ruma-common/src/push/condition.rs @@ -1,13 +1,12 @@ use std::{collections::BTreeMap, convert::TryFrom, ops::RangeBounds, str::FromStr}; use js_int::{Int, UInt}; -use ruma_serde::Raw; use serde::{Deserialize, Serialize}; use serde_json::{to_value as to_json_value, value::Value as JsonValue}; use tracing::{instrument, warn}; use wildmatch::WildMatch; -use crate::{power_levels::NotificationPowerLevels, RoomId, UserId}; +use crate::{power_levels::NotificationPowerLevels, serde::Raw, RoomId, UserId}; mod room_member_count_is; @@ -305,11 +304,10 @@ impl FlattenedJson { mod tests { use std::collections::BTreeMap; - use crate::{room_id, user_id}; + use crate::{room_id, serde::Raw, user_id}; use js_int::uint; use maplit::btreemap; use matches::assert_matches; - use ruma_serde::Raw; use serde_json::{ from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue, }; diff --git a/crates/ruma-common/src/push/condition/room_member_count_is.rs b/crates/ruma-common/src/push/condition/room_member_count_is.rs index f88be8af..92c5c0af 100644 --- a/crates/ruma-common/src/push/condition/room_member_count_is.rs +++ b/crates/ruma-common/src/push/condition/room_member_count_is.rs @@ -153,7 +153,7 @@ impl<'de> Deserialize<'de> for RoomMemberCountIs { where D: Deserializer<'de>, { - let s = ruma_serde::deserialize_cow_str(deserializer)?; + let s = crate::serde::deserialize_cow_str(deserializer)?; FromStr::from_str(&s).map_err(serde::de::Error::custom) } } diff --git a/crates/ruma-common/src/receipt.rs b/crates/ruma-common/src/receipt.rs index f350ba1d..f344a4c6 100644 --- a/crates/ruma-common/src/receipt.rs +++ b/crates/ruma-common/src/receipt.rs @@ -1,8 +1,9 @@ //! Common types for receipts. -use ruma_serde::{OrdAsRefStr, PartialEqAsRefStr, PartialOrdAsRefStr, StringEnum}; - -use crate::PrivOwnedStr; +use crate::{ + serde::{OrdAsRefStr, PartialEqAsRefStr, PartialOrdAsRefStr, StringEnum}, + PrivOwnedStr, +}; /// The type of receipt. /// diff --git a/crates/ruma-common/src/room.rs b/crates/ruma-common/src/room.rs index 4276236a..83b47ecd 100644 --- a/crates/ruma-common/src/room.rs +++ b/crates/ruma-common/src/room.rs @@ -1,8 +1,6 @@ //! Common types for rooms. -use ruma_serde::StringEnum; - -use crate::PrivOwnedStr; +use crate::{serde::StringEnum, PrivOwnedStr}; /// An enum of possible room types. /// diff --git a/crates/ruma-serde/src/lib.rs b/crates/ruma-common/src/serde.rs similarity index 86% rename from crates/ruma-serde/src/lib.rs rename to crates/ruma-common/src/serde.rs index 6d8895bd..e957e4d5 100644 --- a/crates/ruma-serde/src/lib.rs +++ b/crates/ruma-common/src/serde.rs @@ -1,8 +1,9 @@ -#![doc(html_favicon_url = "https://www.ruma.io/favicon.ico")] -#![doc(html_logo_url = "https://www.ruma.io/images/logo.png")] -//! (De)serialization helpers for other ruma crates. - -#![warn(missing_docs)] +//! (De)serialization helpers for other Ruma crates. +//! +//! Part of that is a fork of [serde_urlencoded], with support for sequences in `Deserialize` / +//! `Serialize` structs (e.g. `Vec`) that are (de)serialized as `field=val1&field=val2`. +//! +//! [serde_urlencoded]: https://github.com/nox/serde_urlencoded use serde::{de, Deserialize}; use serde_json::{value::RawValue as RawJsonValue, Value as JsonValue}; @@ -91,10 +92,3 @@ pub use ruma_macros::{ AsRefStr, DeserializeFromCowStr, DisplayAsRefStr, FromString, OrdAsRefStr, Outgoing, PartialEqAsRefStr, PartialOrdAsRefStr, SerializeAsRefStr, StringEnum, _FakeDeriveSerde, }; - -/// This module is used to support the generated code from ruma-macros. -/// It is not considered part of ruma-serde's public API. -#[doc(hidden)] -pub mod exports { - pub use serde; -} diff --git a/crates/ruma-serde/src/base64.rs b/crates/ruma-common/src/serde/base64.rs similarity index 98% rename from crates/ruma-serde/src/base64.rs rename to crates/ruma-common/src/serde/base64.rs index 912277ad..5fe052ec 100644 --- a/crates/ruma-serde/src/base64.rs +++ b/crates/ruma-common/src/serde/base64.rs @@ -105,7 +105,7 @@ impl<'de, C: Base64Config> Deserialize<'de> for Base64 { where D: Deserializer<'de>, { - let encoded = crate::deserialize_cow_str(deserializer)?; + let encoded = super::deserialize_cow_str(deserializer)?; Self::parse(&*encoded).map_err(de::Error::custom) } } diff --git a/crates/ruma-serde/src/buf.rs b/crates/ruma-common/src/serde/buf.rs similarity index 100% rename from crates/ruma-serde/src/buf.rs rename to crates/ruma-common/src/serde/buf.rs diff --git a/crates/ruma-serde/src/can_be_empty.rs b/crates/ruma-common/src/serde/can_be_empty.rs similarity index 100% rename from crates/ruma-serde/src/can_be_empty.rs rename to crates/ruma-common/src/serde/can_be_empty.rs diff --git a/crates/ruma-serde/src/canonical_json.rs b/crates/ruma-common/src/serde/canonical_json.rs similarity index 100% rename from crates/ruma-serde/src/canonical_json.rs rename to crates/ruma-common/src/serde/canonical_json.rs diff --git a/crates/ruma-serde/src/canonical_json/value.rs b/crates/ruma-common/src/serde/canonical_json/value.rs similarity index 96% rename from crates/ruma-serde/src/canonical_json/value.rs rename to crates/ruma-common/src/serde/canonical_json/value.rs index b5c831f2..cb096497 100644 --- a/crates/ruma-serde/src/canonical_json/value.rs +++ b/crates/ruma-common/src/serde/canonical_json/value.rs @@ -22,7 +22,7 @@ pub enum CanonicalJsonValue { /// ``` /// # use serde_json::json; /// # use std::convert::TryInto; - /// # use ruma_serde::CanonicalJsonValue; + /// # use ruma_common::serde::CanonicalJsonValue; /// let v: CanonicalJsonValue = json!(null).try_into().unwrap(); /// ``` Null, @@ -32,7 +32,7 @@ pub enum CanonicalJsonValue { /// ``` /// # use serde_json::json; /// # use std::convert::TryInto; - /// # use ruma_serde::CanonicalJsonValue; + /// # use ruma_common::serde::CanonicalJsonValue; /// let v: CanonicalJsonValue = json!(true).try_into().unwrap(); /// ``` Bool(bool), @@ -42,7 +42,7 @@ pub enum CanonicalJsonValue { /// ``` /// # use serde_json::json; /// # use std::convert::TryInto; - /// # use ruma_serde::CanonicalJsonValue; + /// # use ruma_common::serde::CanonicalJsonValue; /// let v: CanonicalJsonValue = json!(12).try_into().unwrap(); /// ``` Integer(Int), @@ -52,7 +52,7 @@ pub enum CanonicalJsonValue { /// ``` /// # use serde_json::json; /// # use std::convert::TryInto; - /// # use ruma_serde::CanonicalJsonValue; + /// # use ruma_common::serde::CanonicalJsonValue; /// let v: CanonicalJsonValue = json!("a string").try_into().unwrap(); /// ``` String(String), @@ -62,7 +62,7 @@ pub enum CanonicalJsonValue { /// ``` /// # use serde_json::json; /// # use std::convert::TryInto; - /// # use ruma_serde::CanonicalJsonValue; + /// # use ruma_common::serde::CanonicalJsonValue; /// let v: CanonicalJsonValue = json!(["an", "array"]).try_into().unwrap(); /// ``` Array(Vec), @@ -74,7 +74,7 @@ pub enum CanonicalJsonValue { /// ``` /// # use serde_json::json; /// # use std::convert::TryInto; - /// # use ruma_serde::CanonicalJsonValue; + /// # use ruma_common::serde::CanonicalJsonValue; /// let v: CanonicalJsonValue = json!({ "an": "object" }).try_into().unwrap(); /// ``` Object(Object), diff --git a/crates/ruma-serde/src/cow.rs b/crates/ruma-common/src/serde/cow.rs similarity index 100% rename from crates/ruma-serde/src/cow.rs rename to crates/ruma-common/src/serde/cow.rs diff --git a/crates/ruma-serde/src/duration.rs b/crates/ruma-common/src/serde/duration.rs similarity index 100% rename from crates/ruma-serde/src/duration.rs rename to crates/ruma-common/src/serde/duration.rs diff --git a/crates/ruma-serde/src/duration/opt_ms.rs b/crates/ruma-common/src/serde/duration/opt_ms.rs similarity index 100% rename from crates/ruma-serde/src/duration/opt_ms.rs rename to crates/ruma-common/src/serde/duration/opt_ms.rs diff --git a/crates/ruma-serde/src/duration/secs.rs b/crates/ruma-common/src/serde/duration/secs.rs similarity index 100% rename from crates/ruma-serde/src/duration/secs.rs rename to crates/ruma-common/src/serde/duration/secs.rs diff --git a/crates/ruma-serde/src/empty.rs b/crates/ruma-common/src/serde/empty.rs similarity index 100% rename from crates/ruma-serde/src/empty.rs rename to crates/ruma-common/src/serde/empty.rs diff --git a/crates/ruma-serde/src/json_string.rs b/crates/ruma-common/src/serde/json_string.rs similarity index 93% rename from crates/ruma-serde/src/json_string.rs rename to crates/ruma-common/src/serde/json_string.rs index 9e0be7d2..76e7fbf4 100644 --- a/crates/ruma-serde/src/json_string.rs +++ b/crates/ruma-common/src/serde/json_string.rs @@ -22,6 +22,6 @@ where T: DeserializeOwned, D: Deserializer<'de>, { - let s = crate::deserialize_cow_str(deserializer)?; + let s = super::deserialize_cow_str(deserializer)?; serde_json::from_str(&s).map_err(D::Error::custom) } diff --git a/crates/ruma-serde/src/raw.rs b/crates/ruma-common/src/serde/raw.rs similarity index 98% rename from crates/ruma-serde/src/raw.rs rename to crates/ruma-common/src/serde/raw.rs index 93ebe95c..13cfa57f 100644 --- a/crates/ruma-serde/src/raw.rs +++ b/crates/ruma-common/src/serde/raw.rs @@ -11,7 +11,7 @@ use serde::{ }; use serde_json::value::{to_raw_value as to_raw_json_value, RawValue as RawJsonValue}; -use crate::cow::MyCowStr; +use super::cow::MyCowStr; /// A wrapper around `Box`, to be used in place of any type in the Matrix endpoint /// definition to allow request and response types to contain that said type represented by @@ -25,7 +25,7 @@ use crate::cow::MyCowStr; /// /// ```no_run /// # use serde::Deserialize; -/// # use ruma_serde::Raw; +/// # use ruma_common::serde::Raw; /// # #[derive(Deserialize)] /// # struct AnyRoomEvent; /// @@ -85,7 +85,7 @@ impl Raw { /// ```no_run /// # type CustomMatrixEvent = (); /// # fn foo() -> serde_json::Result<()> { - /// # let raw_event: ruma_serde::Raw<()> = todo!(); + /// # let raw_event: ruma_common::serde::Raw<()> = todo!(); /// if raw_event.get_field::("type")?.as_deref() == Some("org.custom.matrix.event") { /// let event = raw_event.deserialize_as::()?; /// // ... diff --git a/crates/ruma-serde/src/single_element_seq.rs b/crates/ruma-common/src/serde/single_element_seq.rs similarity index 100% rename from crates/ruma-serde/src/single_element_seq.rs rename to crates/ruma-common/src/serde/single_element_seq.rs diff --git a/crates/ruma-serde/src/strings.rs b/crates/ruma-common/src/serde/strings.rs similarity index 100% rename from crates/ruma-serde/src/strings.rs rename to crates/ruma-common/src/serde/strings.rs diff --git a/crates/ruma-serde/src/test.rs b/crates/ruma-common/src/serde/test.rs similarity index 100% rename from crates/ruma-serde/src/test.rs rename to crates/ruma-common/src/serde/test.rs diff --git a/crates/ruma-serde/src/urlencoded.rs b/crates/ruma-common/src/serde/urlencoded.rs similarity index 100% rename from crates/ruma-serde/src/urlencoded.rs rename to crates/ruma-common/src/serde/urlencoded.rs diff --git a/crates/ruma-serde/src/urlencoded/de.rs b/crates/ruma-common/src/serde/urlencoded/de.rs similarity index 98% rename from crates/ruma-serde/src/urlencoded/de.rs rename to crates/ruma-common/src/serde/urlencoded/de.rs index 6c151bba..f8c23483 100644 --- a/crates/ruma-serde/src/urlencoded/de.rs +++ b/crates/ruma-common/src/serde/urlencoded/de.rs @@ -30,7 +30,7 @@ use val_or_vec::ValOrVec; /// ]; /// /// assert_eq!( -/// ruma_serde::urlencoded::from_bytes::>( +/// ruma_common::serde::urlencoded::from_bytes::>( /// b"bread=baguette&cheese=comt%C3%A9&meat=ham&fat=butter" /// ), /// Ok(meal) @@ -54,7 +54,7 @@ where /// ]; /// /// assert_eq!( -/// ruma_serde::urlencoded::from_str::>( +/// ruma_common::serde::urlencoded::from_str::>( /// "bread=baguette&cheese=comt%C3%A9&meat=ham&fat=butter" /// ), /// Ok(meal) diff --git a/crates/ruma-serde/src/urlencoded/de/val_or_vec.rs b/crates/ruma-common/src/serde/urlencoded/de/val_or_vec.rs similarity index 100% rename from crates/ruma-serde/src/urlencoded/de/val_or_vec.rs rename to crates/ruma-common/src/serde/urlencoded/de/val_or_vec.rs diff --git a/crates/ruma-serde/src/urlencoded/ser.rs b/crates/ruma-common/src/serde/urlencoded/ser.rs similarity index 99% rename from crates/ruma-serde/src/urlencoded/ser.rs rename to crates/ruma-common/src/serde/urlencoded/ser.rs index 699b637a..25f36a0d 100644 --- a/crates/ruma-serde/src/urlencoded/ser.rs +++ b/crates/ruma-common/src/serde/urlencoded/ser.rs @@ -16,7 +16,7 @@ use serde::ser; /// let meal = &[("bread", "baguette"), ("cheese", "comté"), ("meat", "ham"), ("fat", "butter")]; /// /// assert_eq!( -/// ruma_serde::urlencoded::to_string(meal), +/// ruma_common::serde::urlencoded::to_string(meal), /// Ok("bread=baguette&cheese=comt%C3%A9&meat=ham&fat=butter".to_owned()) /// ); /// ``` diff --git a/crates/ruma-serde/src/urlencoded/ser/key.rs b/crates/ruma-common/src/serde/urlencoded/ser/key.rs similarity index 100% rename from crates/ruma-serde/src/urlencoded/ser/key.rs rename to crates/ruma-common/src/serde/urlencoded/ser/key.rs diff --git a/crates/ruma-serde/src/urlencoded/ser/pair.rs b/crates/ruma-common/src/serde/urlencoded/ser/pair.rs similarity index 100% rename from crates/ruma-serde/src/urlencoded/ser/pair.rs rename to crates/ruma-common/src/serde/urlencoded/ser/pair.rs diff --git a/crates/ruma-serde/src/urlencoded/ser/part.rs b/crates/ruma-common/src/serde/urlencoded/ser/part.rs similarity index 100% rename from crates/ruma-serde/src/urlencoded/ser/part.rs rename to crates/ruma-common/src/serde/urlencoded/ser/part.rs diff --git a/crates/ruma-serde/src/urlencoded/ser/value.rs b/crates/ruma-common/src/serde/urlencoded/ser/value.rs similarity index 100% rename from crates/ruma-serde/src/urlencoded/ser/value.rs rename to crates/ruma-common/src/serde/urlencoded/ser/value.rs diff --git a/crates/ruma-common/src/thirdparty.rs b/crates/ruma-common/src/thirdparty.rs index bdc37d63..8f15fbcc 100644 --- a/crates/ruma-common/src/thirdparty.rs +++ b/crates/ruma-common/src/thirdparty.rs @@ -4,10 +4,9 @@ use std::collections::BTreeMap; -use ruma_serde::StringEnum; use serde::{Deserialize, Serialize}; -use crate::{MilliSecondsSinceUnixEpoch, PrivOwnedStr, RoomAliasId, UserId}; +use crate::{serde::StringEnum, MilliSecondsSinceUnixEpoch, PrivOwnedStr, RoomAliasId, UserId}; /// Metadata about a third party protocol. /// diff --git a/crates/ruma-common/src/to_device.rs b/crates/ruma-common/src/to_device.rs index 2b125e3a..d24a3e46 100644 --- a/crates/ruma-common/src/to_device.rs +++ b/crates/ruma-common/src/to_device.rs @@ -71,7 +71,7 @@ impl<'de> Deserialize<'de> for DeviceIdOrAllDevices { where D: Deserializer<'de>, { - let s = ruma_serde::deserialize_cow_str(deserializer)?; + let s = crate::serde::deserialize_cow_str(deserializer)?; DeviceIdOrAllDevices::try_from(s.as_ref()).map_err(|_| { de::Error::invalid_value(Unexpected::Str(&s), &"a valid device identifier or '*'") }) diff --git a/crates/ruma-common/tests/api/manual_endpoint_impl.rs b/crates/ruma-common/tests/api/manual_endpoint_impl.rs index ff55a7d1..ae5f262b 100644 --- a/crates/ruma-common/tests/api/manual_endpoint_impl.rs +++ b/crates/ruma-common/tests/api/manual_endpoint_impl.rs @@ -12,9 +12,9 @@ use ruma_common::{ AuthScheme, EndpointError, IncomingRequest, IncomingResponse, MatrixVersion, Metadata, OutgoingRequest, OutgoingResponse, SendAccessToken, }, + serde::Outgoing, RoomAliasId, RoomId, }; -use ruma_serde::Outgoing; use serde::{Deserialize, Serialize}; /// A request to create a new room alias. @@ -71,7 +71,7 @@ impl OutgoingRequest for Request { let http_request = http::Request::builder() .method(METADATA.method) .uri(url) - .body(ruma_serde::json_to_buf(&request_body)?) + .body(ruma_common::serde::json_to_buf(&request_body)?) // this cannot fail because we don't give user-supplied data to any of the // builder methods .unwrap(); @@ -142,7 +142,7 @@ impl OutgoingResponse for Response { ) -> Result, IntoHttpError> { let response = http::Response::builder() .header(CONTENT_TYPE, "application/json") - .body(ruma_serde::slice_to_buf(b"{}")) + .body(ruma_common::serde::slice_to_buf(b"{}")) .unwrap(); Ok(response) diff --git a/crates/ruma-common/tests/api/ruma_api_lifetime.rs b/crates/ruma-common/tests/api/ruma_api_lifetime.rs index 49f05a8c..5bf4c983 100644 --- a/crates/ruma-common/tests/api/ruma_api_lifetime.rs +++ b/crates/ruma-common/tests/api/ruma_api_lifetime.rs @@ -1,6 +1,6 @@ #![allow(clippy::exhaustive_structs)] -#[derive(Copy, Clone, Debug, ruma_serde::Outgoing, serde::Serialize)] +#[derive(Copy, Clone, Debug, ruma_common::serde::Outgoing, serde::Serialize)] pub struct OtherThing<'t> { pub some: &'t str, pub t: &'t [u8], diff --git a/crates/ruma-common/tests/api/ruma_api_macros.rs b/crates/ruma-common/tests/api/ruma_api_macros.rs index 52b796b7..65df0a53 100644 --- a/crates/ruma-common/tests/api/ruma_api_macros.rs +++ b/crates/ruma-common/tests/api/ruma_api_macros.rs @@ -4,9 +4,9 @@ pub mod some_endpoint { use ruma_common::{ api::ruma_api, events::{tag::TagEvent, AnyRoomEvent}, + serde::Raw, UserId, }; - use ruma_serde::Raw; ruma_api! { metadata: { diff --git a/crates/ruma-common/tests/api/ui/01-api-sanity-check.rs b/crates/ruma-common/tests/api/ui/01-api-sanity-check.rs index 272fcafa..51d8ea2c 100644 --- a/crates/ruma-common/tests/api/ui/01-api-sanity-check.rs +++ b/crates/ruma-common/tests/api/ui/01-api-sanity-check.rs @@ -1,6 +1,8 @@ -use ruma_common::api::ruma_api; -use ruma_common::events::{tag::TagEvent, AnyRoomEvent}; -use ruma_serde::Raw; +use ruma_common::{ + api::ruma_api, + events::{tag::TagEvent, AnyRoomEvent}, + serde::Raw, +}; ruma_api! { metadata: { diff --git a/crates/ruma-common/tests/api/ui/05-request-only.rs b/crates/ruma-common/tests/api/ui/05-request-only.rs index 8a4cc0b0..5f449668 100644 --- a/crates/ruma-common/tests/api/ui/05-request-only.rs +++ b/crates/ruma-common/tests/api/ui/05-request-only.rs @@ -1,9 +1,11 @@ use bytes::BufMut; -use ruma_common::api::{ - error::{FromHttpResponseError, IntoHttpError, MatrixError}, - ruma_api, IncomingResponse, OutgoingResponse, +use ruma_common::{ + api::{ + error::{FromHttpResponseError, IntoHttpError, MatrixError}, + ruma_api, IncomingResponse, OutgoingResponse, + }, + serde::Outgoing, }; -use ruma_serde::Outgoing; ruma_api! { metadata: { diff --git a/crates/ruma-common/tests/events/enums.rs b/crates/ruma-common/tests/events/enums.rs index 12430473..a4386df8 100644 --- a/crates/ruma-common/tests/events/enums.rs +++ b/crates/ruma-common/tests/events/enums.rs @@ -1,7 +1,6 @@ use js_int::uint; use matches::assert_matches; -use ruma_common::{event_id, room_alias_id, room_id, user_id}; -use ruma_serde::test::serde_json_eq; +use ruma_common::{event_id, room_alias_id, room_id, serde::test::serde_json_eq, user_id}; use serde_json::{from_value as from_json_value, json, Value as JsonValue}; use ruma_common::{ diff --git a/crates/ruma-common/tests/events/file.rs b/crates/ruma-common/tests/events/file.rs index 1d480ca6..28796574 100644 --- a/crates/ruma-common/tests/events/file.rs +++ b/crates/ruma-common/tests/events/file.rs @@ -14,9 +14,10 @@ use ruma_common::{ }, AnyMessageLikeEvent, MessageLikeEvent, Unsigned, }, - mxc_uri, room_id, user_id, MilliSecondsSinceUnixEpoch, + mxc_uri, room_id, + serde::Base64, + user_id, MilliSecondsSinceUnixEpoch, }; -use ruma_serde::Base64; use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; #[test] diff --git a/crates/ruma-common/tests/events/message_event.rs b/crates/ruma-common/tests/events/message_event.rs index cf25df1a..20536d9e 100644 --- a/crates/ruma-common/tests/events/message_event.rs +++ b/crates/ruma-common/tests/events/message_event.rs @@ -10,9 +10,10 @@ use ruma_common::{ AnyMessageLikeEvent, AnyMessageLikeEventContent, AnySyncMessageLikeEvent, MessageLikeEvent, RawExt, Unsigned, }, - mxc_uri, room_id, user_id, MilliSecondsSinceUnixEpoch, + mxc_uri, room_id, + serde::Raw, + user_id, MilliSecondsSinceUnixEpoch, }; -use ruma_serde::Raw; use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; #[test] diff --git a/crates/ruma-common/tests/events/state_event.rs b/crates/ruma-common/tests/events/state_event.rs index 2055ce55..8a60a020 100644 --- a/crates/ruma-common/tests/events/state_event.rs +++ b/crates/ruma-common/tests/events/state_event.rs @@ -11,9 +11,10 @@ use ruma_common::{ AnyRoomEvent, AnyStateEvent, AnyStateEventContent, AnySyncStateEvent, RawExt, StateEvent, SyncStateEvent, Unsigned, }, - mxc_uri, room_alias_id, room_id, user_id, MilliSecondsSinceUnixEpoch, + mxc_uri, room_alias_id, room_id, + serde::Raw, + user_id, MilliSecondsSinceUnixEpoch, }; -use ruma_serde::Raw; use serde_json::{ from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue, }; diff --git a/crates/ruma-serde/tests/empty_strings.rs b/crates/ruma-common/tests/serde/empty_strings.rs similarity index 90% rename from crates/ruma-serde/tests/empty_strings.rs rename to crates/ruma-common/tests/serde/empty_strings.rs index b4ff0cb0..c5bb4c0c 100644 --- a/crates/ruma-serde/tests/empty_strings.rs +++ b/crates/ruma-common/tests/serde/empty_strings.rs @@ -6,8 +6,8 @@ mod string { struct StringStruct { #[serde( default, - deserialize_with = "ruma_serde::empty_string_as_none", - serialize_with = "ruma_serde::none_as_empty_string" + deserialize_with = "ruma_common::serde::empty_string_as_none", + serialize_with = "ruma_common::serde::none_as_empty_string" )] x: Option, } @@ -63,8 +63,8 @@ mod user { struct User { #[serde( default, - deserialize_with = "ruma_serde::empty_string_as_none", - serialize_with = "ruma_serde::none_as_empty_string" + deserialize_with = "ruma_common::serde::empty_string_as_none", + serialize_with = "ruma_common::serde::none_as_empty_string" )] x: Option>, } diff --git a/crates/ruma-serde/tests/enum_derive.rs b/crates/ruma-common/tests/serde/enum_derive.rs similarity index 98% rename from crates/ruma-serde/tests/enum_derive.rs rename to crates/ruma-common/tests/serde/enum_derive.rs index a6477a1f..00d28cd3 100644 --- a/crates/ruma-serde/tests/enum_derive.rs +++ b/crates/ruma-common/tests/serde/enum_derive.rs @@ -1,4 +1,4 @@ -use ruma_serde::StringEnum; +use ruma_common::serde::StringEnum; use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; #[derive(Debug, PartialEq)] diff --git a/crates/ruma-common/tests/serde/mod.rs b/crates/ruma-common/tests/serde/mod.rs new file mode 100644 index 00000000..a11e4688 --- /dev/null +++ b/crates/ruma-common/tests/serde/mod.rs @@ -0,0 +1,4 @@ +mod empty_strings; +mod enum_derive; +mod url_deserialize; +mod url_serialize; diff --git a/crates/ruma-serde/tests/url_deserialize.rs b/crates/ruma-common/tests/serde/url_deserialize.rs similarity index 98% rename from crates/ruma-serde/tests/url_deserialize.rs rename to crates/ruma-common/tests/serde/url_deserialize.rs index 0ed335d3..50282a06 100644 --- a/crates/ruma-serde/tests/url_deserialize.rs +++ b/crates/ruma-common/tests/serde/url_deserialize.rs @@ -1,6 +1,6 @@ use form_urlencoded::Serializer as Encoder; use matches::assert_matches; -use ruma_serde::urlencoded; +use ruma_common::serde::urlencoded; use serde::Deserialize; #[derive(Deserialize, Debug, PartialEq)] @@ -130,7 +130,7 @@ fn deserialize_with_serde_attributes() { xs: Vec, #[serde(default)] def: Option, - #[serde(default, deserialize_with = "ruma_serde::empty_string_as_none")] + #[serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none")] str: Option, #[serde(default)] flag: bool, diff --git a/crates/ruma-serde/tests/url_serialize.rs b/crates/ruma-common/tests/serde/url_serialize.rs similarity index 98% rename from crates/ruma-serde/tests/url_serialize.rs rename to crates/ruma-common/tests/serde/url_serialize.rs index 5ae71a26..c426489c 100644 --- a/crates/ruma-serde/tests/url_serialize.rs +++ b/crates/ruma-common/tests/serde/url_serialize.rs @@ -1,6 +1,6 @@ use form_urlencoded::Serializer as Encoder; use matches::assert_matches; -use ruma_serde::urlencoded::{self, ser::Error}; +use ruma_common::serde::urlencoded::{self, ser::Error}; use serde::Serialize; #[derive(Serialize)] diff --git a/crates/ruma-common/tests/tests.rs b/crates/ruma-common/tests/tests.rs index f34993e2..cdb5e49a 100644 --- a/crates/ruma-common/tests/tests.rs +++ b/crates/ruma-common/tests/tests.rs @@ -1,3 +1,4 @@ mod api; mod events; mod identifiers; +mod serde; diff --git a/crates/ruma-federation-api/Cargo.toml b/crates/ruma-federation-api/Cargo.toml index ed02eb25..5a2e27bd 100644 --- a/crates/ruma-federation-api/Cargo.toml +++ b/crates/ruma-federation-api/Cargo.toml @@ -25,7 +25,6 @@ server = [] [dependencies] js_int = { version = "0.2.0", features = ["serde"] } ruma-common = { version = "0.8.0", path = "../ruma-common", features = ["api", "events"] } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } serde_json = "1.0.61" diff --git a/crates/ruma-federation-api/src/device/get_devices.rs b/crates/ruma-federation-api/src/device/get_devices.rs index bacedafb..5ea7c346 100644 --- a/crates/ruma-federation-api/src/device/get_devices.rs +++ b/crates/ruma-federation-api/src/device/get_devices.rs @@ -11,9 +11,9 @@ pub mod v1 { use ruma_common::{ api::ruma_api, encryption::{CrossSigningKey, DeviceKeys}, + serde::Raw, DeviceId, UserId, }; - use ruma_serde::Raw; use serde::{Deserialize, Serialize}; ruma_api! { diff --git a/crates/ruma-federation-api/src/directory/get_public_rooms.rs b/crates/ruma-federation-api/src/directory/get_public_rooms.rs index 54a9531d..3d7eb898 100644 --- a/crates/ruma-federation-api/src/directory/get_public_rooms.rs +++ b/crates/ruma-federation-api/src/directory/get_public_rooms.rs @@ -37,7 +37,7 @@ pub mod v1 { pub since: Option<&'a str>, /// Network to fetch the public room lists from. - #[serde(flatten, skip_serializing_if = "ruma_serde::is_default")] + #[serde(flatten, skip_serializing_if = "ruma_common::serde::is_default")] #[ruma_api(query)] pub room_network: RoomNetwork<'a>, } diff --git a/crates/ruma-federation-api/src/directory/get_public_rooms_filtered.rs b/crates/ruma-federation-api/src/directory/get_public_rooms_filtered.rs index 911b785f..82000348 100644 --- a/crates/ruma-federation-api/src/directory/get_public_rooms_filtered.rs +++ b/crates/ruma-federation-api/src/directory/get_public_rooms_filtered.rs @@ -39,7 +39,7 @@ pub mod v1 { pub filter: Filter<'a>, /// Network to fetch the public room lists from. - #[serde(flatten, skip_serializing_if = "ruma_serde::is_default")] + #[serde(flatten, skip_serializing_if = "ruma_common::serde::is_default")] pub room_network: RoomNetwork<'a>, } diff --git a/crates/ruma-federation-api/src/discovery.rs b/crates/ruma-federation-api/src/discovery.rs index 6919d518..2d258284 100644 --- a/crates/ruma-federation-api/src/discovery.rs +++ b/crates/ruma-federation-api/src/discovery.rs @@ -2,8 +2,7 @@ use std::collections::BTreeMap; -use ruma_common::{MilliSecondsSinceUnixEpoch, ServerName, ServerSigningKeyId}; -use ruma_serde::Base64; +use ruma_common::{serde::Base64, MilliSecondsSinceUnixEpoch, ServerName, ServerSigningKeyId}; use serde::{Deserialize, Serialize}; pub mod discover_homeserver; diff --git a/crates/ruma-federation-api/src/discovery/get_remote_server_keys.rs b/crates/ruma-federation-api/src/discovery/get_remote_server_keys.rs index ae92535a..52f4f99d 100644 --- a/crates/ruma-federation-api/src/discovery/get_remote_server_keys.rs +++ b/crates/ruma-federation-api/src/discovery/get_remote_server_keys.rs @@ -8,8 +8,7 @@ pub mod v2 { //! //! [spec]: https://spec.matrix.org/v1.2/server-server-api/#get_matrixkeyv2queryservernamekeyid - use ruma_common::{api::ruma_api, MilliSecondsSinceUnixEpoch, ServerName}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw, MilliSecondsSinceUnixEpoch, ServerName}; use crate::discovery::ServerSigningKeys; diff --git a/crates/ruma-federation-api/src/discovery/get_remote_server_keys_batch.rs b/crates/ruma-federation-api/src/discovery/get_remote_server_keys_batch.rs index 29850413..61176d79 100644 --- a/crates/ruma-federation-api/src/discovery/get_remote_server_keys_batch.rs +++ b/crates/ruma-federation-api/src/discovery/get_remote_server_keys_batch.rs @@ -10,8 +10,9 @@ pub mod v2 { use std::collections::BTreeMap; - use ruma_common::{api::ruma_api, MilliSecondsSinceUnixEpoch, ServerName, ServerSigningKeyId}; - use ruma_serde::Raw; + use ruma_common::{ + api::ruma_api, serde::Raw, MilliSecondsSinceUnixEpoch, ServerName, ServerSigningKeyId, + }; use serde::{Deserialize, Serialize}; use crate::discovery::ServerSigningKeys; diff --git a/crates/ruma-federation-api/src/discovery/get_server_keys.rs b/crates/ruma-federation-api/src/discovery/get_server_keys.rs index 480425d7..1ee52e8f 100644 --- a/crates/ruma-federation-api/src/discovery/get_server_keys.rs +++ b/crates/ruma-federation-api/src/discovery/get_server_keys.rs @@ -10,8 +10,7 @@ pub mod v2 { //! //! [spec]: https://spec.matrix.org/v1.2/server-server-api/#get_matrixkeyv2serverkeyid - use ruma_common::api::ruma_api; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, serde::Raw}; use crate::discovery::ServerSigningKeys; diff --git a/crates/ruma-federation-api/src/event/get_event.rs b/crates/ruma-federation-api/src/event/get_event.rs index d15fd8ad..39e90c8a 100644 --- a/crates/ruma-federation-api/src/event/get_event.rs +++ b/crates/ruma-federation-api/src/event/get_event.rs @@ -35,7 +35,7 @@ pub mod v1 { pub origin_server_ts: MilliSecondsSinceUnixEpoch, /// The event. - #[serde(rename = "pdus", with = "ruma_serde::single_element_seq")] + #[serde(rename = "pdus", with = "ruma_common::serde::single_element_seq")] pub pdu: Box, } } diff --git a/crates/ruma-federation-api/src/event/get_missing_events.rs b/crates/ruma-federation-api/src/event/get_missing_events.rs index 8f92285d..bdca4746 100644 --- a/crates/ruma-federation-api/src/event/get_missing_events.rs +++ b/crates/ruma-federation-api/src/event/get_missing_events.rs @@ -36,7 +36,7 @@ pub mod v1 { /// The minimum depth of events to retrieve. /// /// Defaults to 0. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub min_depth: UInt, /// The latest event IDs that the sender already has. diff --git a/crates/ruma-federation-api/src/keys/claim_keys.rs b/crates/ruma-federation-api/src/keys/claim_keys.rs index 1a883291..1586fa6c 100644 --- a/crates/ruma-federation-api/src/keys/claim_keys.rs +++ b/crates/ruma-federation-api/src/keys/claim_keys.rs @@ -10,9 +10,11 @@ pub mod v1 { use std::collections::BTreeMap; use ruma_common::{ - api::ruma_api, encryption::OneTimeKey, DeviceId, DeviceKeyAlgorithm, DeviceKeyId, UserId, + api::ruma_api, + encryption::OneTimeKey, + serde::{Base64, Raw}, + DeviceId, DeviceKeyAlgorithm, DeviceKeyId, UserId, }; - use ruma_serde::{Base64, Raw}; use serde::{Deserialize, Serialize}; ruma_api! { diff --git a/crates/ruma-federation-api/src/keys/get_keys.rs b/crates/ruma-federation-api/src/keys/get_keys.rs index 4195b47d..7f31ca3e 100644 --- a/crates/ruma-federation-api/src/keys/get_keys.rs +++ b/crates/ruma-federation-api/src/keys/get_keys.rs @@ -12,9 +12,9 @@ pub mod v1 { use ruma_common::{ api::ruma_api, encryption::{CrossSigningKey, DeviceKeys}, + serde::Raw, DeviceId, UserId, }; - use ruma_serde::Raw; ruma_api! { metadata: { diff --git a/crates/ruma-federation-api/src/knock/send_knock.rs b/crates/ruma-federation-api/src/knock/send_knock.rs index 1edbcf2e..2557a897 100644 --- a/crates/ruma-federation-api/src/knock/send_knock.rs +++ b/crates/ruma-federation-api/src/knock/send_knock.rs @@ -7,8 +7,7 @@ pub mod v1 { //! //! [spec]: https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv1send_knockroomideventid - use ruma_common::{api::ruma_api, events::AnyStrippedStateEvent, EventId, RoomId}; - use ruma_serde::Raw; + use ruma_common::{api::ruma_api, events::AnyStrippedStateEvent, serde::Raw, EventId, RoomId}; use serde_json::value::RawValue as RawJsonValue; ruma_api! { diff --git a/crates/ruma-federation-api/src/membership/create_invite/v1.rs b/crates/ruma-federation-api/src/membership/create_invite/v1.rs index 0ed159b7..1fdd9185 100644 --- a/crates/ruma-federation-api/src/membership/create_invite/v1.rs +++ b/crates/ruma-federation-api/src/membership/create_invite/v1.rs @@ -5,9 +5,9 @@ use ruma_common::{ api::ruma_api, events::{room::member::RoomMemberEventContent, AnyStrippedStateEvent, EventType}, + serde::Raw, EventId, MilliSecondsSinceUnixEpoch, RoomId, ServerName, UserId, }; -use ruma_serde::Raw; use serde::{Deserialize, Serialize}; use serde_json::value::RawValue as RawJsonValue; diff --git a/crates/ruma-federation-api/src/membership/create_invite/v2.rs b/crates/ruma-federation-api/src/membership/create_invite/v2.rs index dbfd1ab5..30fd9282 100644 --- a/crates/ruma-federation-api/src/membership/create_invite/v2.rs +++ b/crates/ruma-federation-api/src/membership/create_invite/v2.rs @@ -2,8 +2,9 @@ //! //! [spec]: https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2inviteroomideventid -use ruma_common::{api::ruma_api, events::AnyStrippedStateEvent, EventId, RoomId, RoomVersionId}; -use ruma_serde::Raw; +use ruma_common::{ + api::ruma_api, events::AnyStrippedStateEvent, serde::Raw, EventId, RoomId, RoomVersionId, +}; use serde_json::value::RawValue as RawJsonValue; ruma_api! { diff --git a/crates/ruma-federation-api/src/membership/create_leave_event/v1.rs b/crates/ruma-federation-api/src/membership/create_leave_event/v1.rs index 980e5751..57abad94 100644 --- a/crates/ruma-federation-api/src/membership/create_leave_event/v1.rs +++ b/crates/ruma-federation-api/src/membership/create_leave_event/v1.rs @@ -6,9 +6,9 @@ use js_int::UInt; use ruma_common::{ api::ruma_api, events::{room::member::RoomMemberEventContent, EventType}, + serde::Raw, EventId, MilliSecondsSinceUnixEpoch, RoomId, ServerName, UserId, }; -use ruma_serde::Raw; use serde::{Deserialize, Serialize}; ruma_api! { diff --git a/crates/ruma-federation-api/src/query/get_profile_information.rs b/crates/ruma-federation-api/src/query/get_profile_information.rs index 22595093..0a8bdc16 100644 --- a/crates/ruma-federation-api/src/query/get_profile_information.rs +++ b/crates/ruma-federation-api/src/query/get_profile_information.rs @@ -7,8 +7,7 @@ pub mod v1 { //! //! [spec]: https://spec.matrix.org/v1.2/server-server-api/#get_matrixfederationv1queryprofile - use ruma_common::{api::ruma_api, MxcUri, UserId}; - use ruma_serde::StringEnum; + use ruma_common::{api::ruma_api, serde::StringEnum, MxcUri, UserId}; use crate::PrivOwnedStr; @@ -47,7 +46,7 @@ pub mod v1 { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, diff --git a/crates/ruma-federation-api/src/space.rs b/crates/ruma-federation-api/src/space.rs index f1e30771..d6ff0ee9 100644 --- a/crates/ruma-federation-api/src/space.rs +++ b/crates/ruma-federation-api/src/space.rs @@ -3,9 +3,8 @@ use js_int::UInt; use ruma_common::{ directory::PublicRoomJoinRule, events::space::child::HierarchySpaceChildStateEvent, - room::RoomType, MxcUri, RoomAliasId, RoomId, RoomName, + room::RoomType, serde::Raw, MxcUri, RoomAliasId, RoomId, RoomName, }; -use ruma_serde::Raw; use serde::{Deserialize, Serialize}; pub mod get_hierarchy; @@ -21,7 +20,7 @@ pub struct SpaceHierarchyParentSummary { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub canonical_alias: Option>, @@ -54,12 +53,12 @@ pub struct SpaceHierarchyParentSummary { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, /// The join rule of the room. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub join_rule: PublicRoomJoinRule, /// The type of room from `m.room.create`, if any. @@ -72,7 +71,7 @@ pub struct SpaceHierarchyParentSummary { /// If the room is a restricted room, these are the room IDs which are specified by the join /// rules. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub allowed_room_ids: Vec>, } @@ -150,7 +149,7 @@ pub struct SpaceHierarchyChildSummary { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub canonical_alias: Option>, @@ -183,12 +182,12 @@ pub struct SpaceHierarchyChildSummary { #[serde(skip_serializing_if = "Option::is_none")] #[cfg_attr( feature = "compat", - serde(default, deserialize_with = "ruma_serde::empty_string_as_none") + serde(default, deserialize_with = "ruma_common::serde::empty_string_as_none") )] pub avatar_url: Option>, /// The join rule of the room. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub join_rule: PublicRoomJoinRule, /// The type of room from `m.room.create`, if any. @@ -196,7 +195,7 @@ pub struct SpaceHierarchyChildSummary { /// If the room is a restricted room, these are the room IDs which are specified by the join /// rules. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub allowed_room_ids: Vec>, } diff --git a/crates/ruma-federation-api/src/space/get_hierarchy.rs b/crates/ruma-federation-api/src/space/get_hierarchy.rs index 0812beec..f5d22c16 100644 --- a/crates/ruma-federation-api/src/space/get_hierarchy.rs +++ b/crates/ruma-federation-api/src/space/get_hierarchy.rs @@ -32,7 +32,7 @@ pub mod v1 { /// /// Suggested rooms are annotated in their `m.space.child` event contents. #[ruma_api(query)] - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub suggested_only: bool, } diff --git a/crates/ruma-federation-api/src/transactions/edu.rs b/crates/ruma-federation-api/src/transactions/edu.rs index 37ecbff9..46a67989 100644 --- a/crates/ruma-federation-api/src/transactions/edu.rs +++ b/crates/ruma-federation-api/src/transactions/edu.rs @@ -7,10 +7,10 @@ use ruma_common::{ encryption::{CrossSigningKey, DeviceKeys}, events::{receipt::Receipt, AnyToDeviceEventContent, EventType}, presence::PresenceState, + serde::{from_raw_json_value, Raw}, to_device::DeviceIdOrAllDevices, DeviceId, EventId, RoomId, TransactionId, UserId, }; -use ruma_serde::{from_raw_json_value, Raw}; use serde::{de, Deserialize, Serialize}; use serde_json::{value::RawValue as RawJsonValue, Value as JsonValue}; diff --git a/crates/ruma-federation-api/src/transactions/send_transaction_message.rs b/crates/ruma-federation-api/src/transactions/send_transaction_message.rs index e65d61ab..48d9a9da 100644 --- a/crates/ruma-federation-api/src/transactions/send_transaction_message.rs +++ b/crates/ruma-federation-api/src/transactions/send_transaction_message.rs @@ -10,9 +10,8 @@ pub mod v1 { use std::collections::BTreeMap; use ruma_common::{ - api::ruma_api, EventId, MilliSecondsSinceUnixEpoch, ServerName, TransactionId, + api::ruma_api, serde::Raw, EventId, MilliSecondsSinceUnixEpoch, ServerName, TransactionId, }; - use ruma_serde::Raw; use serde_json::value::RawValue as RawJsonValue; use crate::transactions::edu::Edu; diff --git a/crates/ruma-identity-service-api/Cargo.toml b/crates/ruma-identity-service-api/Cargo.toml index b0685a42..4c8ba30e 100644 --- a/crates/ruma-identity-service-api/Cargo.toml +++ b/crates/ruma-identity-service-api/Cargo.toml @@ -20,7 +20,6 @@ server = [] [dependencies] js_int = { version = "0.2.0", features = ["serde"] } ruma-common = { version = "0.8.0", path = "../ruma-common", features = ["api"] } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } [dev-dependencies] diff --git a/crates/ruma-identity-service-api/src/authentication/register.rs b/crates/ruma-identity-service-api/src/authentication/register.rs index f9786473..05864e21 100644 --- a/crates/ruma-identity-service-api/src/authentication/register.rs +++ b/crates/ruma-identity-service-api/src/authentication/register.rs @@ -38,7 +38,7 @@ pub mod v2 { pub matrix_server_name: &'a ServerName, /// The number of seconds before this token expires and a new one must be generated. - #[serde(with = "ruma_serde::duration::secs")] + #[serde(with = "ruma_common::serde::duration::secs")] pub expires_in: Duration, } diff --git a/crates/ruma-identity-service-api/src/invitation/sign_invitation_ed25519.rs b/crates/ruma-identity-service-api/src/invitation/sign_invitation_ed25519.rs index e29a25b2..5c0fbd03 100644 --- a/crates/ruma-identity-service-api/src/invitation/sign_invitation_ed25519.rs +++ b/crates/ruma-identity-service-api/src/invitation/sign_invitation_ed25519.rs @@ -7,8 +7,7 @@ pub mod v2 { //! //! [spec]: https://spec.matrix.org/v1.2/identity-service-api/#post_matrixidentityv2sign-ed25519 - use ruma_common::{api::ruma_api, ServerSignatures, UserId}; - use ruma_serde::Base64; + use ruma_common::{api::ruma_api, serde::Base64, ServerSignatures, UserId}; ruma_api! { metadata: { diff --git a/crates/ruma-identity-service-api/src/keys/check_public_key_validity.rs b/crates/ruma-identity-service-api/src/keys/check_public_key_validity.rs index c4f4203d..d472795d 100644 --- a/crates/ruma-identity-service-api/src/keys/check_public_key_validity.rs +++ b/crates/ruma-identity-service-api/src/keys/check_public_key_validity.rs @@ -7,8 +7,7 @@ pub mod v2 { //! //! [spec]: https://spec.matrix.org/v1.2/identity-service-api/#get_matrixidentityv2pubkeyisvalid - use ruma_common::api::ruma_api; - use ruma_serde::Base64; + use ruma_common::{api::ruma_api, serde::Base64}; ruma_api! { metadata: { diff --git a/crates/ruma-identity-service-api/src/keys/get_public_key.rs b/crates/ruma-identity-service-api/src/keys/get_public_key.rs index f91c9b08..5bc92bf5 100644 --- a/crates/ruma-identity-service-api/src/keys/get_public_key.rs +++ b/crates/ruma-identity-service-api/src/keys/get_public_key.rs @@ -7,8 +7,7 @@ pub mod v2 { //! //! [spec]: https://spec.matrix.org/v1.2/identity-service-api/#get_matrixidentityv2pubkeykeyid - use ruma_common::{api::ruma_api, ServerSigningKeyId}; - use ruma_serde::Base64; + use ruma_common::{api::ruma_api, serde::Base64, ServerSigningKeyId}; ruma_api! { metadata: { diff --git a/crates/ruma-identity-service-api/src/keys/validate_ephemeral_key.rs b/crates/ruma-identity-service-api/src/keys/validate_ephemeral_key.rs index 739ca7a4..a0833856 100644 --- a/crates/ruma-identity-service-api/src/keys/validate_ephemeral_key.rs +++ b/crates/ruma-identity-service-api/src/keys/validate_ephemeral_key.rs @@ -7,8 +7,7 @@ pub mod v2 { //! //! [spec]: https://spec.matrix.org/v1.2/identity-service-api/#get_matrixidentityv2pubkeyephemeralisvalid - use ruma_common::api::ruma_api; - use ruma_serde::Base64; + use ruma_common::{api::ruma_api, serde::Base64}; ruma_api! { metadata: { diff --git a/crates/ruma-identity-service-api/src/lookup.rs b/crates/ruma-identity-service-api/src/lookup.rs index 17f5b4b2..d678da16 100644 --- a/crates/ruma-identity-service-api/src/lookup.rs +++ b/crates/ruma-identity-service-api/src/lookup.rs @@ -1,6 +1,6 @@ //! Endpoints to look up Matrix IDs bound to 3PIDs. -use ruma_serde::StringEnum; +use ruma_common::serde::StringEnum; use crate::PrivOwnedStr; diff --git a/crates/ruma-macros/src/api/api_request.rs b/crates/ruma-macros/src/api/api_request.rs index 77f7b6b1..1be04af4 100644 --- a/crates/ruma-macros/src/api/api_request.rs +++ b/crates/ruma-macros/src/api/api_request.rs @@ -74,7 +74,6 @@ impl Request { ruma_common: &TokenStream, ) -> TokenStream { let ruma_macros = quote! { #ruma_common::exports::ruma_macros }; - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let docs = format!( "Data for a request to the `{}` API endpoint.\n\n{}", @@ -100,8 +99,8 @@ impl Request { Clone, Debug, #ruma_macros::Request, - #ruma_serde::Outgoing, - #ruma_serde::_FakeDeriveSerde, + #ruma_common::serde::Outgoing, + #ruma_common::serde::_FakeDeriveSerde, )] #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] #[incoming_derive(!Deserialize, #ruma_macros::_FakeDeriveRumaApi)] diff --git a/crates/ruma-macros/src/api/api_response.rs b/crates/ruma-macros/src/api/api_response.rs index b0a21c0a..e03b713f 100644 --- a/crates/ruma-macros/src/api/api_response.rs +++ b/crates/ruma-macros/src/api/api_response.rs @@ -23,10 +23,9 @@ impl Response { &self, metadata: &Metadata, error_ty: &TokenStream, - ruma_api: &TokenStream, + ruma_common: &TokenStream, ) -> TokenStream { - let ruma_macros = quote! { #ruma_api::exports::ruma_macros }; - let ruma_serde = quote! { #ruma_api::exports::ruma_serde }; + let ruma_macros = quote! { #ruma_common::exports::ruma_macros }; let docs = format!("Data in the response from the `{}` API endpoint.", metadata.name.value()); @@ -40,8 +39,8 @@ impl Response { Clone, Debug, #ruma_macros::Response, - #ruma_serde::Outgoing, - #ruma_serde::_FakeDeriveSerde, + #ruma_common::serde::Outgoing, + #ruma_common::serde::_FakeDeriveSerde, )] #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] #[incoming_derive(!Deserialize, #ruma_macros::_FakeDeriveRumaApi)] diff --git a/crates/ruma-macros/src/api/request.rs b/crates/ruma-macros/src/api/request.rs index 69f5c78e..ff4ad7fa 100644 --- a/crates/ruma-macros/src/api/request.rs +++ b/crates/ruma-macros/src/api/request.rs @@ -199,7 +199,6 @@ impl Request { fn expand_all(&self) -> TokenStream { let ruma_common = import_ruma_common(); let ruma_macros = quote! { #ruma_common::exports::ruma_macros }; - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let serde = quote! { #ruma_common::exports::serde }; let request_body_struct = self.has_body_fields().then(|| { @@ -218,7 +217,7 @@ impl Request { #[derive( Debug, #ruma_macros::_FakeDeriveRumaApi, - #ruma_serde::Outgoing, + #ruma_common::serde::Outgoing, #serde::Serialize, #derive_deserialize )] @@ -246,7 +245,7 @@ impl Request { #[derive( Debug, #ruma_macros::_FakeDeriveRumaApi, - #ruma_serde::Outgoing, + #ruma_common::serde::Outgoing, #serde::Serialize, #derive_deserialize )] diff --git a/crates/ruma-macros/src/api/request/incoming.rs b/crates/ruma-macros/src/api/request/incoming.rs index b16a371c..ced469db 100644 --- a/crates/ruma-macros/src/api/request/incoming.rs +++ b/crates/ruma-macros/src/api/request/incoming.rs @@ -8,7 +8,6 @@ use crate::api::auth_scheme::AuthScheme; impl Request { pub fn expand_incoming(&self, ruma_common: &TokenStream) -> TokenStream { let http = quote! { #ruma_common::exports::http }; - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let serde = quote! { #ruma_common::exports::serde }; let serde_json = quote! { #ruma_common::exports::serde_json }; @@ -47,7 +46,7 @@ impl Request { let field_name = field.ident.as_ref().expect("expected field to have an identifier"); let parse = quote! { #( #cfg_attrs )* - let #field_name = #ruma_serde::urlencoded::from_str( + let #field_name = #ruma_common::serde::urlencoded::from_str( &request.uri().query().unwrap_or(""), )?; }; @@ -66,8 +65,8 @@ impl Request { ); let parse = quote! { - let request_query: ::Incoming = - #ruma_serde::urlencoded::from_str( + let request_query: ::Incoming = + #ruma_common::serde::urlencoded::from_str( &request.uri().query().unwrap_or("") )?; @@ -154,7 +153,7 @@ impl Request { quote! { let request_body: < RequestBody #body_lifetimes - as #ruma_serde::Outgoing + as #ruma_common::serde::Outgoing >::Incoming = { let body = ::std::convert::AsRef::<[::std::primitive::u8]>::as_ref( request.body(), diff --git a/crates/ruma-macros/src/api/request/outgoing.rs b/crates/ruma-macros/src/api/request/outgoing.rs index ce96db26..f6978463 100644 --- a/crates/ruma-macros/src/api/request/outgoing.rs +++ b/crates/ruma-macros/src/api/request/outgoing.rs @@ -10,7 +10,6 @@ impl Request { let bytes = quote! { #ruma_common::exports::bytes }; let http = quote! { #ruma_common::exports::http }; let percent_encoding = quote! { #ruma_common::exports::percent_encoding }; - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let method = &self.method; let error_ty = &self.error_ty; @@ -45,7 +44,7 @@ impl Request { // the field with the query_map attribute doesn't implement // `IntoIterator`. // - // This is necessary because the `ruma_serde::urlencoded::to_string` call will + // This is necessary because the `ruma_common::serde::urlencoded::to_string` call will // result in a runtime error when the type cannot be encoded as a list key-value // pairs (?key1=value1&key2=value2). // @@ -63,7 +62,7 @@ impl Request { format_args!( "?{}", - #ruma_serde::urlencoded::to_string(request_query)? + #ruma_common::serde::urlencoded::to_string(request_query)? ) }} } else if self.has_query_fields() { @@ -79,7 +78,7 @@ impl Request { format_args!( "?{}", - #ruma_serde::urlencoded::to_string(request_query)? + #ruma_common::serde::urlencoded::to_string(request_query)? ) }} } else { @@ -158,17 +157,17 @@ impl Request { let request_body = if let Some(field) = self.raw_body_field() { let field_name = field.ident.as_ref().expect("expected field to have an identifier"); - quote! { #ruma_serde::slice_to_buf(&self.#field_name) } + quote! { #ruma_common::serde::slice_to_buf(&self.#field_name) } } else if self.has_body_fields() { let initializers = struct_init_fields(self.body_fields(), quote! { self }); quote! { - #ruma_serde::json_to_buf(&RequestBody { #initializers })? + #ruma_common::serde::json_to_buf(&RequestBody { #initializers })? } } else if method == "GET" { quote! { ::default() } } else { - quote! { #ruma_serde::slice_to_buf(b"{}") } + quote! { #ruma_common::serde::slice_to_buf(b"{}") } }; let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); @@ -187,7 +186,7 @@ impl Request { #[cfg(feature = "client")] impl #impl_generics #ruma_common::api::OutgoingRequest for Request #ty_generics #where_clause { type EndpointError = #error_ty; - type IncomingResponse = ::Incoming; + type IncomingResponse = ::Incoming; const METADATA: #ruma_common::api::Metadata = self::METADATA; diff --git a/crates/ruma-macros/src/api/response.rs b/crates/ruma-macros/src/api/response.rs index 24509c75..12063235 100644 --- a/crates/ruma-macros/src/api/response.rs +++ b/crates/ruma-macros/src/api/response.rs @@ -95,7 +95,6 @@ impl Response { fn expand_all(&self) -> TokenStream { let ruma_common = import_ruma_common(); let ruma_macros = quote! { #ruma_common::exports::ruma_macros }; - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let serde = quote! { #ruma_common::exports::serde }; let response_body_struct = (!self.has_raw_body()).then(|| { @@ -111,7 +110,7 @@ impl Response { #[derive( Debug, #ruma_macros::_FakeDeriveRumaApi, - #ruma_serde::Outgoing, + #ruma_common::serde::Outgoing, #serde_derives )] #serde_attr diff --git a/crates/ruma-macros/src/api/response/incoming.rs b/crates/ruma-macros/src/api/response/incoming.rs index 3107c182..6385c513 100644 --- a/crates/ruma-macros/src/api/response/incoming.rs +++ b/crates/ruma-macros/src/api/response/incoming.rs @@ -7,7 +7,6 @@ use super::{Response, ResponseField}; impl Response { pub fn expand_incoming(&self, error_ty: &Type, ruma_common: &TokenStream) -> TokenStream { let http = quote! { #ruma_common::exports::http }; - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let serde_json = quote! { #ruma_common::exports::serde_json }; let extract_response_headers = self.has_header_fields().then(|| { @@ -20,7 +19,7 @@ impl Response { quote! { let response_body: < ResponseBody - as #ruma_serde::Outgoing + as #ruma_common::serde::Outgoing >::Incoming = { let body = ::std::convert::AsRef::<[::std::primitive::u8]>::as_ref( response.body(), diff --git a/crates/ruma-macros/src/api/response/outgoing.rs b/crates/ruma-macros/src/api/response/outgoing.rs index c38759d3..5ddb3d26 100644 --- a/crates/ruma-macros/src/api/response/outgoing.rs +++ b/crates/ruma-macros/src/api/response/outgoing.rs @@ -7,7 +7,6 @@ impl Response { pub fn expand_outgoing(&self, ruma_common: &TokenStream) -> TokenStream { let bytes = quote! { #ruma_common::exports::bytes }; let http = quote! { #ruma_common::exports::http }; - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let serialize_response_headers = self.fields.iter().filter_map(|response_field| { response_field.as_header_field().map(|(field, header_name)| { @@ -41,7 +40,7 @@ impl Response { self.fields.iter().find_map(ResponseField::as_raw_body_field) { let field_name = field.ident.as_ref().expect("expected field to have an identifier"); - quote! { #ruma_serde::slice_to_buf(&self.#field_name) } + quote! { #ruma_common::serde::slice_to_buf(&self.#field_name) } } else { let fields = self.fields.iter().filter_map(|response_field| { response_field.as_body_field().map(|field| { @@ -57,7 +56,7 @@ impl Response { }); quote! { - #ruma_serde::json_to_buf(&ResponseBody { #(#fields)* })? + #ruma_common::serde::json_to_buf(&ResponseBody { #(#fields)* })? } }; diff --git a/crates/ruma-macros/src/events/event_enum.rs b/crates/ruma-macros/src/events/event_enum.rs index d9da4d26..b8593e6a 100644 --- a/crates/ruma-macros/src/events/event_enum.rs +++ b/crates/ruma-macros/src/events/event_enum.rs @@ -106,7 +106,6 @@ fn expand_deserialize_impl( variants: &[EventEnumVariant], ruma_common: &TokenStream, ) -> TokenStream { - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let serde = quote! { #ruma_common::exports::serde }; let serde_json = quote! { #ruma_common::exports::serde_json }; @@ -129,7 +128,7 @@ fn expand_deserialize_impl( let json = Box::<#serde_json::value::RawValue>::deserialize(deserializer)?; let #ruma_common::events::EventTypeDeHelper { ev_type, .. } = - #ruma_serde::from_raw_json_value(&json)?; + #ruma_common::serde::from_raw_json_value(&json)?; match &*ev_type { #( @@ -364,7 +363,6 @@ fn expand_possibly_redacted_enum( var: EventKindVariation, ruma_common: &TokenStream, ) -> TokenStream { - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; let serde = quote! { #ruma_common::exports::serde }; let serde_json = quote! { #ruma_common::exports::serde_json }; @@ -391,13 +389,13 @@ fn expand_possibly_redacted_enum( { let json = Box::<#serde_json::value::RawValue>::deserialize(deserializer)?; let #ruma_common::events::RedactionDeHelper { unsigned } = - #ruma_serde::from_raw_json_value(&json)?; + #ruma_common::serde::from_raw_json_value(&json)?; Ok(match unsigned { Some(unsigned) if unsigned.redacted_because.is_some() => { - Self::Redacted(#ruma_serde::from_raw_json_value(&json)?) + Self::Redacted(#ruma_common::serde::from_raw_json_value(&json)?) } - _ => Self::Regular(#ruma_serde::from_raw_json_value(&json)?), + _ => Self::Regular(#ruma_common::serde::from_raw_json_value(&json)?), }) } } diff --git a/crates/ruma-macros/src/events/event_type.rs b/crates/ruma-macros/src/events/event_type.rs index bda7e5a8..8229ce7d 100644 --- a/crates/ruma-macros/src/events/event_type.rs +++ b/crates/ruma-macros/src/events/event_type.rs @@ -8,8 +8,6 @@ pub fn expand_event_type_enum( input: EventEnumInput, ruma_common: TokenStream, ) -> syn::Result { - let ruma_serde = quote! { #ruma_common::exports::ruma_serde }; - let mut room: Vec<&Vec> = vec![]; let mut state: Vec<&Vec> = vec![]; let mut message: Vec<&Vec> = vec![]; @@ -45,14 +43,14 @@ pub fn expand_event_type_enum( all.push(&presence); let (all_event_types, all_str_ev_types) = generate_variants(&all)?; let all = - generate_enum(format_ident!("EventType"), all_str_ev_types, all_event_types, &ruma_serde); + generate_enum(format_ident!("EventType"), all_str_ev_types, all_event_types, &ruma_common); let (room_event_types, room_str_ev_types) = generate_variants(&room)?; let room = generate_enum( format_ident!("RoomEventType"), room_str_ev_types, room_event_types, - &ruma_serde, + &ruma_common, ); let (state_event_types, state_str_ev_types) = generate_variants(&state)?; @@ -60,7 +58,7 @@ pub fn expand_event_type_enum( format_ident!("StateEventType"), state_str_ev_types, state_event_types, - &ruma_serde, + &ruma_common, ); let (message_event_types, message_str_ev_types) = generate_variants(&message)?; @@ -68,7 +66,7 @@ pub fn expand_event_type_enum( format_ident!("MessageLikeEventType"), message_str_ev_types, message_event_types, - &ruma_serde, + &ruma_common, ); let (ephemeral_event_types, ephemeral_str_ev_types) = generate_variants(&ephemeral)?; @@ -76,7 +74,7 @@ pub fn expand_event_type_enum( format_ident!("EphemeralRoomEventType"), ephemeral_str_ev_types, ephemeral_event_types, - &ruma_serde, + &ruma_common, ); let (room_account_event_types, room_account_str_ev_types) = generate_variants(&room_account)?; @@ -84,7 +82,7 @@ pub fn expand_event_type_enum( format_ident!("RoomAccountDataEventType"), room_account_str_ev_types, room_account_event_types, - &ruma_serde, + &ruma_common, ); let (global_account_event_types, global_account_str_ev_types) = @@ -93,7 +91,7 @@ pub fn expand_event_type_enum( format_ident!("GlobalAccountDataEventType"), global_account_str_ev_types, global_account_event_types, - &ruma_serde, + &ruma_common, ); let (to_device_event_types, to_device_str_ev_types) = generate_variants(&to_device)?; @@ -101,7 +99,7 @@ pub fn expand_event_type_enum( format_ident!("ToDeviceEventType"), to_device_str_ev_types, to_device_event_types, - &ruma_serde, + &ruma_common, ); Ok(quote! { @@ -120,7 +118,7 @@ fn generate_enum( ident: Ident, ev_type_strings: Vec<&LitStr>, variants: Vec, - ruma_serde: &TokenStream, + ruma_common: &TokenStream, ) -> TokenStream { let str_doc = format!("Creates a string slice from this `{}`.", ident); let byte_doc = format!("Creates a byte slice from this `{}`.", ident); @@ -130,7 +128,7 @@ fn generate_enum( /// /// This type can hold an arbitrary string. To check for events that are not available as a /// documented variant here, use its string representation, obtained through `.as_str()`. - #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, #ruma_serde::StringEnum)] + #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, #ruma_common::serde::StringEnum)] #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] pub enum #ident { #( diff --git a/crates/ruma-macros/src/serde.rs b/crates/ruma-macros/src/serde.rs index 927d79a0..5cc5c62e 100644 --- a/crates/ruma-macros/src/serde.rs +++ b/crates/ruma-macros/src/serde.rs @@ -1,6 +1,4 @@ -//! Methods and types for [ruma-serde]. -//! -//! [ruma-serde]: https://github.com/ruma/ruma/tree/main/ruma-serde +//! Methods and types for (de)serialization. pub mod attr; pub mod case; diff --git a/crates/ruma-macros/src/serde/deserialize_from_cow_str.rs b/crates/ruma-macros/src/serde/deserialize_from_cow_str.rs index 44027418..acdd1165 100644 --- a/crates/ruma-macros/src/serde/deserialize_from_cow_str.rs +++ b/crates/ruma-macros/src/serde/deserialize_from_cow_str.rs @@ -1,20 +1,20 @@ use proc_macro2::{Ident, TokenStream}; use quote::quote; -use super::util::import_ruma_serde; +use crate::util::import_ruma_common; pub fn expand_deserialize_from_cow_str(ident: &Ident) -> syn::Result { - let ruma_serde = import_ruma_serde(); + let ruma_common = import_ruma_common(); Ok(quote! { - impl<'de> #ruma_serde::exports::serde::de::Deserialize<'de> for #ident { + impl<'de> #ruma_common::exports::serde::de::Deserialize<'de> for #ident { fn deserialize(deserializer: D) -> ::std::result::Result where - D: #ruma_serde::exports::serde::de::Deserializer<'de>, + D: #ruma_common::exports::serde::de::Deserializer<'de>, { type CowStr<'a> = ::std::borrow::Cow<'a, ::std::primitive::str>; - let cow = #ruma_serde::deserialize_cow_str(deserializer)?; + let cow = #ruma_common::serde::deserialize_cow_str(deserializer)?; Ok(::std::convert::From::>::from(cow)) } } diff --git a/crates/ruma-macros/src/serde/outgoing.rs b/crates/ruma-macros/src/serde/outgoing.rs index e2b9674d..328f13f1 100644 --- a/crates/ruma-macros/src/serde/outgoing.rs +++ b/crates/ruma-macros/src/serde/outgoing.rs @@ -9,7 +9,7 @@ use syn::{ PathArguments, Token, Type, TypeGenerics, TypePath, TypeReference, TypeSlice, Variant, }; -use super::util::import_ruma_serde; +use crate::util::import_ruma_common; enum StructKind { Struct, @@ -23,7 +23,7 @@ enum DataKind { } pub fn expand_derive_outgoing(input: DeriveInput) -> syn::Result { - let ruma_serde = import_ruma_serde(); + let ruma_common = import_ruma_common(); let mut derives = vec![quote! { Debug }]; let mut derive_deserialize = true; @@ -47,9 +47,9 @@ pub fn expand_derive_outgoing(input: DeriveInput) -> syn::Result { ); derives.push(if derive_deserialize { - quote! { #ruma_serde::exports::serde::Deserialize } + quote! { #ruma_common::exports::serde::Deserialize } } else { - quote! { #ruma_serde::_FakeDeriveSerde } + quote! { #ruma_common::serde::_FakeDeriveSerde } }); let input_attrs = @@ -70,7 +70,7 @@ pub fn expand_derive_outgoing(input: DeriveInput) -> syn::Result { }; match data { - DataKind::Unit => Ok(impl_outgoing_with_incoming_self(&input, &ruma_serde)), + DataKind::Unit => Ok(impl_outgoing_with_incoming_self(&input, &ruma_common)), DataKind::Enum(mut vars) => { let mut found_lifetime = false; for var in &mut vars { @@ -85,7 +85,7 @@ pub fn expand_derive_outgoing(input: DeriveInput) -> syn::Result { let (original_impl_gen, original_ty_gen, _) = input.generics.split_for_impl(); if !found_lifetime { - return Ok(impl_outgoing_with_incoming_self(&input, &ruma_serde)); + return Ok(impl_outgoing_with_incoming_self(&input, &ruma_common)); } let vis = input.vis; @@ -102,7 +102,7 @@ pub fn expand_derive_outgoing(input: DeriveInput) -> syn::Result { #vis enum #incoming_ident #ty_gen { #( #vars, )* } #[automatically_derived] - impl #original_impl_gen #ruma_serde::Outgoing for #original_ident #original_ty_gen { + impl #original_impl_gen #ruma_common::serde::Outgoing for #original_ident #original_ty_gen { type Incoming = #incoming_ident #impl_gen; } }) @@ -122,7 +122,7 @@ pub fn expand_derive_outgoing(input: DeriveInput) -> syn::Result { let (original_impl_gen, original_ty_gen, _) = input.generics.split_for_impl(); if !found_lifetime { - return Ok(impl_outgoing_with_incoming_self(&input, &ruma_serde)); + return Ok(impl_outgoing_with_incoming_self(&input, &ruma_common)); } let vis = input.vis; @@ -144,7 +144,7 @@ pub fn expand_derive_outgoing(input: DeriveInput) -> syn::Result { #vis struct #incoming_ident #ty_gen #struct_def #[automatically_derived] - impl #original_impl_gen #ruma_serde::Outgoing for #original_ident #original_ty_gen { + impl #original_impl_gen #ruma_common::serde::Outgoing for #original_ident #original_ty_gen { type Incoming = #incoming_ident #impl_gen; } }) @@ -162,13 +162,13 @@ fn filter_input_attrs(attr: &Attribute) -> bool { || attr.path.is_ident("allow") } -fn impl_outgoing_with_incoming_self(input: &DeriveInput, ruma_serde: &TokenStream) -> TokenStream { +fn impl_outgoing_with_incoming_self(input: &DeriveInput, ruma_common: &TokenStream) -> TokenStream { let ident = &input.ident; let (impl_gen, ty_gen, _) = input.generics.split_for_impl(); quote! { #[automatically_derived] - impl #impl_gen #ruma_serde::Outgoing for #ident #ty_gen { + impl #impl_gen #ruma_common::serde::Outgoing for #ident #ty_gen { type Incoming = Self; } } diff --git a/crates/ruma-macros/src/serde/serialize_as_ref_str.rs b/crates/ruma-macros/src/serde/serialize_as_ref_str.rs index 40253c8f..c2c823ee 100644 --- a/crates/ruma-macros/src/serde/serialize_as_ref_str.rs +++ b/crates/ruma-macros/src/serde/serialize_as_ref_str.rs @@ -1,17 +1,17 @@ use proc_macro2::{Ident, TokenStream}; use quote::quote; -use super::util::import_ruma_serde; +use crate::util::import_ruma_common; pub fn expand_serialize_as_ref_str(ident: &Ident) -> syn::Result { - let ruma_serde = import_ruma_serde(); + let ruma_common = import_ruma_common(); Ok(quote! { #[automatically_derived] - impl #ruma_serde::exports::serde::ser::Serialize for #ident { + impl #ruma_common::exports::serde::ser::Serialize for #ident { fn serialize(&self, serializer: S) -> ::std::result::Result where - S: #ruma_serde::exports::serde::ser::Serializer, + S: #ruma_common::exports::serde::ser::Serializer, { ::std::convert::AsRef::<::std::primitive::str>::as_ref(self).serialize(serializer) } diff --git a/crates/ruma-macros/src/serde/util.rs b/crates/ruma-macros/src/serde/util.rs index 40d392e2..dd3e0017 100644 --- a/crates/ruma-macros/src/serde/util.rs +++ b/crates/ruma-macros/src/serde/util.rs @@ -1,6 +1,4 @@ -use proc_macro2::{Span, TokenStream}; -use proc_macro_crate::{crate_name, FoundCrate}; -use quote::{format_ident, quote}; +use proc_macro2::Span; use syn::{ItemEnum, LitStr, Variant}; use super::{ @@ -8,24 +6,6 @@ use super::{ case::RenameRule, }; -pub fn import_ruma_serde() -> TokenStream { - if let Ok(FoundCrate::Name(name)) = crate_name("ruma-serde") { - let import = format_ident!("{}", name); - quote! { ::#import } - } else if let Ok(FoundCrate::Name(name)) = crate_name("ruma") { - let import = format_ident!("{}", name); - quote! { ::#import::serde } - } else if let Ok(FoundCrate::Name(name)) = crate_name("matrix-sdk") { - let import = format_ident!("{}", name); - quote! { ::#import::ruma::serde } - } else if let Ok(FoundCrate::Name(name)) = crate_name("matrix-sdk-appservice") { - let import = format_ident!("{}", name); - quote! { ::#import::ruma::serde } - } else { - quote! { ::ruma_serde } - } -} - pub fn get_rename_rule(input: &ItemEnum) -> syn::Result { let rules: Vec<_> = input .attrs diff --git a/crates/ruma-push-gateway-api/Cargo.toml b/crates/ruma-push-gateway-api/Cargo.toml index 6cc9a9ca..b373e3e3 100644 --- a/crates/ruma-push-gateway-api/Cargo.toml +++ b/crates/ruma-push-gateway-api/Cargo.toml @@ -20,6 +20,5 @@ server = [] [dependencies] js_int = { version = "0.2.0", features = ["serde"] } ruma-common = { version = "0.8.0", path = "../ruma-common", features = ["api", "events"] } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } serde_json = "1.0.61" diff --git a/crates/ruma-push-gateway-api/src/send_event_notification.rs b/crates/ruma-push-gateway-api/src/send_event_notification.rs index ddab448a..7a471667 100644 --- a/crates/ruma-push-gateway-api/src/send_event_notification.rs +++ b/crates/ruma-push-gateway-api/src/send_event_notification.rs @@ -13,9 +13,9 @@ pub mod v1 { api::ruma_api, events::EventType, push::{PusherData, Tweak}, + serde::{Outgoing, StringEnum}, EventId, RoomAliasId, RoomId, RoomName, SecondsSinceUnixEpoch, UserId, }; - use ruma_serde::{Outgoing, StringEnum}; use serde::{Deserialize, Serialize}; use serde_json::value::RawValue as RawJsonValue; @@ -104,7 +104,7 @@ pub mod v1 { /// Whether the user receiving the notification is the subject of a member event (i.e. the /// `state_key` of the member event is equal to the user's Matrix ID). - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub user_is_target: bool, /// The priority of the notification. @@ -112,7 +112,7 @@ pub mod v1 { /// If omitted, `high` is assumed. This may be used by push gateways to deliver less /// time-sensitive notifications in a way that will preserve battery power on mobile /// devices. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub prio: NotificationPriority, /// The `content` field from the event, if present. @@ -124,7 +124,7 @@ pub mod v1 { /// Current number of unacknowledged communications for the recipient user. /// /// Counts whose value is zero should be omitted. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub counts: NotificationCounts, /// An array of devices that the notification should be sent to. @@ -178,12 +178,12 @@ pub mod v1 { pub struct NotificationCounts { /// The number of unread messages a user has across all of the rooms they /// are a member of. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub unread: UInt, /// The number of unacknowledged missed calls a user has across all rooms of /// which they are a member. - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] pub missed_calls: UInt, } diff --git a/crates/ruma-serde/CHANGELOG.md b/crates/ruma-serde/CHANGELOG.md deleted file mode 100644 index 3904b58f..00000000 --- a/crates/ruma-serde/CHANGELOG.md +++ /dev/null @@ -1,63 +0,0 @@ -# [unreleased] - -# 0.6.0 - -Breaking changes: - -* Remove `From` implementation for `Raw` - * Replaced by the new fallible constructor `Raw::new` - -Improvements: - -* Add `Base64` type -* Add `Raw::{cast, cast_ref}` - -# 0.5.0 - -Breaking changes: - -* Make `urlencoded::ser::Error` non-exhaustive -* Remove `to_canonical_json_string` and `CanonicalJsonError::JsonSize` - * The size check only makes sense for PDUs but canonical JSON objects can be - used for other things too - * You can simply use `serde_json::to_string` instead - -# 0.4.2 - -Improvements: - -* Make `Raw::deserialize` & `Raw::deserialize_as` more general - -# 0.4.1 - -Improvements: - -* Remove unneeded cargo feature from a dependency - -# 0.4.0 - -Breaking changes: - -* Remove the `empty` module from the public API -* Remove the `time` module - -Improvements: - -* Add serialization decorator `none_as_empty_string` to serialize `None`s as empty strings -* Add `PartialOrdAsRefStr`, `OrdAsRefStr` and `PartialEqAsRefStr` derives -* Add `MilliSecondsSinceUnixEpoch` and `SecondsSinceUnixEpoch` types -* Add `Raw::{get_field, deserialize_as}` -* Add accessor methods to `CanonicalJsonValue` -* Add conversion trait implementations for `CanonicalJsonValue` - -# 0.3.1 - -Bug fixes: - -* Fix an edge case in query parameter deserialization - -# 0.3.0 - -Breaking changes: - -* Upgrade `js_int` to 0.2.0 diff --git a/crates/ruma-serde/Cargo.toml b/crates/ruma-serde/Cargo.toml deleted file mode 100644 index 9006bbb3..00000000 --- a/crates/ruma-serde/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[package] -name = "ruma-serde" -description = "De-/serialization helpers for other ruma crates" -license = "MIT" -homepage = "https://www.ruma.io/" -repository = "https://github.com/ruma/ruma" -version = "0.6.0" -edition = "2018" - -[dependencies] -base64 = "0.13.0" -bytes = "1.0.1" -form_urlencoded = "1.0.0" -itoa = "1.0.1" -js_int = { version = "0.2.0", features = ["serde"] } -ruma-macros = { version = "=0.1.0", path = "../ruma-macros" } -serde = { version = "1.0.118", features = ["derive"] } -serde_json = { version = "1.0.61", features = ["raw_value"] } - -[dev-dependencies] -matches = "0.1.8" -ruma-common = { path = "../ruma-common" , version = "0.8.0"} diff --git a/crates/ruma-serde/README.md b/crates/ruma-serde/README.md deleted file mode 100644 index c6c7fc2b..00000000 --- a/crates/ruma-serde/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# ruma-serde - -This crate contains (de)serialization helpers for other ruma crates. - -Part of that is a fork of [serde_urlencoded], with support for sequences in `Deserialize` / -`Serialize` structs (e.g. `Vec`) that are (de)serialized as `field=val1&field=val2`. - -[serde_urlencoded]: https://github.com/nox/serde_urlencoded diff --git a/crates/ruma-signatures/Cargo.toml b/crates/ruma-signatures/Cargo.toml index 84b815c9..a5813ca1 100644 --- a/crates/ruma-signatures/Cargo.toml +++ b/crates/ruma-signatures/Cargo.toml @@ -24,7 +24,6 @@ pkcs8 = { version = "0.7.0", features = ["alloc"] } # because dalek uses an older version of rand_core rand = { version = "0.7", features = ["getrandom"] } ruma-common = { version = "0.8.0", path = "../ruma-common" } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde_json = "1.0.60" sha2 = "0.9.5" thiserror = "1.0.26" diff --git a/crates/ruma-signatures/src/error.rs b/crates/ruma-signatures/src/error.rs index 384535d6..3e41a61c 100644 --- a/crates/ruma-signatures/src/error.rs +++ b/crates/ruma-signatures/src/error.rs @@ -1,5 +1,4 @@ -use ruma_common::{EventId, RoomVersionId, ServerName}; -use ruma_serde::Base64DecodeError; +use ruma_common::{serde::Base64DecodeError, EventId, RoomVersionId, ServerName}; use thiserror::Error; /// `ruma-signature`'s error type, wraps a number of other error types. diff --git a/crates/ruma-signatures/src/functions.rs b/crates/ruma-signatures/src/functions.rs index 91db4880..433bd934 100644 --- a/crates/ruma-signatures/src/functions.rs +++ b/crates/ruma-signatures/src/functions.rs @@ -8,8 +8,10 @@ use std::{ }; use base64::{encode_config, STANDARD_NO_PAD, URL_SAFE_NO_PAD}; -use ruma_common::{EventId, RoomVersionId, ServerName, UserId}; -use ruma_serde::{base64::Standard, Base64, CanonicalJsonObject, CanonicalJsonValue}; +use ruma_common::{ + serde::{base64::Standard, Base64, CanonicalJsonObject, CanonicalJsonValue}, + EventId, RoomVersionId, ServerName, UserId, +}; use serde_json::{from_str as from_json_str, to_string as to_json_string}; use sha2::{digest::Digest, Sha256}; @@ -229,7 +231,7 @@ pub fn canonical_json(object: &CanonicalJsonObject) -> Result { /// ```rust /// use std::collections::BTreeMap; /// -/// use ruma_serde::Base64; +/// use ruma_common::serde::Base64; /// /// const PUBLIC_KEY: &[u8] = b"XGX0JRS2Af3be3knz2fBiRbApjm2Dh61gXDJA8kcJNI"; /// @@ -542,7 +544,7 @@ where /// ```rust /// # use std::collections::BTreeMap; /// # use ruma_common::RoomVersionId; -/// # use ruma_serde::Base64; +/// # use ruma_common::serde::Base64; /// # use ruma_signatures::{verify_event, Verified}; /// # /// const PUBLIC_KEY: &[u8] = b"XGX0JRS2Af3be3knz2fBiRbApjm2Dh61gXDJA8kcJNI"; @@ -848,8 +850,10 @@ mod tests { convert::{TryFrom, TryInto}, }; - use ruma_common::{RoomVersionId, ServerSigningKeyId, SigningKeyAlgorithm}; - use ruma_serde::{Base64, CanonicalJsonValue}; + use ruma_common::{ + serde::{Base64, CanonicalJsonValue}, + RoomVersionId, ServerSigningKeyId, SigningKeyAlgorithm, + }; use serde_json::json; use super::canonical_json; diff --git a/crates/ruma-signatures/src/keys.rs b/crates/ruma-signatures/src/keys.rs index 6819ac27..26765c20 100644 --- a/crates/ruma-signatures/src/keys.rs +++ b/crates/ruma-signatures/src/keys.rs @@ -10,7 +10,7 @@ use pkcs8::{ der::{Decodable, Encodable}, AlgorithmIdentifier, ObjectIdentifier, PrivateKeyInfo, }; -use ruma_serde::Base64; +use ruma_common::serde::Base64; use crate::{signatures::Signature, Algorithm, Error, ParseError}; diff --git a/crates/ruma-signatures/src/lib.rs b/crates/ruma-signatures/src/lib.rs index a3581e1e..165d7741 100644 --- a/crates/ruma-signatures/src/lib.rs +++ b/crates/ruma-signatures/src/lib.rs @@ -44,7 +44,7 @@ #![warn(missing_docs)] -use ruma_serde::{AsRefStr, DisplayAsRefStr}; +use ruma_common::serde::{AsRefStr, DisplayAsRefStr}; pub use error::{Error, JsonError, JsonType, ParseError, VerificationError}; pub use functions::{ @@ -52,7 +52,7 @@ pub use functions::{ redact_in_place, reference_hash, sign_json, verify_event, verify_json, }; pub use keys::{Ed25519KeyPair, KeyPair, PublicKeyMap, PublicKeySet}; -pub use ruma_serde::{CanonicalJsonError, CanonicalJsonObject, CanonicalJsonValue}; +pub use ruma_common::serde::{CanonicalJsonError, CanonicalJsonObject, CanonicalJsonValue}; pub use signatures::Signature; pub use verification::Verified; @@ -106,8 +106,7 @@ mod tests { use base64::{decode_config, STANDARD_NO_PAD}; use pkcs8::{der::Decodable, PrivateKeyInfo}; - use ruma_common::RoomVersionId; - use ruma_serde::Base64; + use ruma_common::{serde::Base64, RoomVersionId}; use serde_json::{from_str as from_json_str, to_string as to_json_string}; use super::{ diff --git a/crates/ruma-state-res/Cargo.toml b/crates/ruma-state-res/Cargo.toml index b7414c71..98ae9c2b 100644 --- a/crates/ruma-state-res/Cargo.toml +++ b/crates/ruma-state-res/Cargo.toml @@ -24,7 +24,6 @@ __ci = ["ruma-common/unstable-pre-spec"] itertools = "0.10.0" js_int = "0.2.0" ruma-common = { version = "0.8.0", path = "../ruma-common", features = ["events"] } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } serde = { version = "1.0.118", features = ["derive"] } serde_json = "1.0.60" thiserror = "1.0.26" diff --git a/crates/ruma-state-res/src/event_auth.rs b/crates/ruma-state-res/src/event_auth.rs index df3d89ab..707e9408 100644 --- a/crates/ruma-state-res/src/event_auth.rs +++ b/crates/ruma-state-res/src/event_auth.rs @@ -12,9 +12,9 @@ use ruma_common::{ }, EventType, }, + serde::{Base64, Raw}, RoomVersionId, UserId, }; -use ruma_serde::{Base64, Raw}; use serde::{de::IgnoredAny, Deserialize}; use serde_json::{from_str as from_json_str, value::RawValue as RawJsonValue}; use tracing::{debug, error, info, warn}; diff --git a/crates/ruma-state-res/src/lib.rs b/crates/ruma-state-res/src/lib.rs index a2e60618..32c0145d 100644 --- a/crates/ruma-state-res/src/lib.rs +++ b/crates/ruma-state-res/src/lib.rs @@ -339,16 +339,16 @@ where struct PowerLevelsContentFields { #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::btreemap_deserialize_v1_powerlevel_values") + serde(deserialize_with = "ruma_common::serde::btreemap_deserialize_v1_powerlevel_values") )] #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] users: BTreeMap, Int>, #[cfg_attr( feature = "compat", - serde(deserialize_with = "ruma_serde::deserialize_v1_powerlevel") + serde(deserialize_with = "ruma_common::serde::deserialize_v1_powerlevel") )] - #[serde(default, skip_serializing_if = "ruma_serde::is_default")] + #[serde(default, skip_serializing_if = "ruma_common::serde::is_default")] users_default: Int, } diff --git a/crates/ruma/Cargo.toml b/crates/ruma/Cargo.toml index 1dc5a0b8..0338d829 100644 --- a/crates/ruma/Cargo.toml +++ b/crates/ruma/Cargo.toml @@ -139,7 +139,6 @@ assign = "1.1.1" js_int = "0.2.0" ruma-common = { version = "0.8.0", path = "../ruma-common" } -ruma-serde = { version = "0.6.0", path = "../ruma-serde" } ruma-client = { version = "0.8.0", path = "../ruma-client", optional = true } ruma-signatures = { version = "0.10.0", path = "../ruma-signatures", optional = true } diff --git a/crates/ruma/src/lib.rs b/crates/ruma/src/lib.rs index d4081acc..8d14f42e 100644 --- a/crates/ruma/src/lib.rs +++ b/crates/ruma/src/lib.rs @@ -73,7 +73,7 @@ #[doc(inline)] pub use ruma_common as common; #[doc(inline)] -pub use ruma_serde as serde; +pub use ruma_common::serde; #[cfg(feature = "client")] #[doc(inline)] @@ -162,11 +162,10 @@ pub use ruma_client::Client; pub use ruma_common::{ authentication, device_id, device_key_id, directory, encryption, event_id, matrix_uri, mxc_uri, power_levels, presence, push, receipt, room, room_alias_id, room_id, room_version_id, - server_name, server_signing_key_id, thirdparty, to_device, user_id, ClientSecret, DeviceId, - DeviceKeyAlgorithm, DeviceKeyId, DeviceSignatures, DeviceSigningKeyId, EntitySignatures, - EventEncryptionAlgorithm, EventId, KeyId, KeyName, MatrixToUri, MilliSecondsSinceUnixEpoch, - MxcUri, PrivOwnedStr, RoomAliasId, RoomId, RoomOrAliasId, RoomVersionId, SecondsSinceUnixEpoch, - ServerName, ServerSignatures, ServerSigningKeyId, SessionId, Signatures, SigningKeyAlgorithm, - TransactionId, UserId, + serde::Outgoing, server_name, server_signing_key_id, thirdparty, to_device, user_id, + ClientSecret, DeviceId, DeviceKeyAlgorithm, DeviceKeyId, DeviceSignatures, DeviceSigningKeyId, + EntitySignatures, EventEncryptionAlgorithm, EventId, KeyId, KeyName, MatrixToUri, + MilliSecondsSinceUnixEpoch, MxcUri, PrivOwnedStr, RoomAliasId, RoomId, RoomOrAliasId, + RoomVersionId, SecondsSinceUnixEpoch, ServerName, ServerSignatures, ServerSigningKeyId, + SessionId, Signatures, SigningKeyAlgorithm, TransactionId, UserId, }; -pub use ruma_serde::Outgoing; diff --git a/crates/ruma/tests/outgoing.rs b/crates/ruma/tests/outgoing.rs index 15276dc2..2bf0b69c 100644 --- a/crates/ruma/tests/outgoing.rs +++ b/crates/ruma/tests/outgoing.rs @@ -1,5 +1,6 @@ -// This test should really be part of ruma_serde, but some tooling doesn't like -// cyclic dev-dependencies, which are required for this test to be moved there. +// This test should really be part of ruma_common::serde, but some tooling +// doesn't like cyclic dev-dependencies, which are required for this test to be +// moved there. #![allow(clippy::exhaustive_structs, clippy::redundant_allocation)]