57 Commits

Author SHA1 Message Date
Jonas Platte
dd6446822b
Derive PartialEq and Eq for all string-wrapping enums 2020-11-02 00:29:47 +01:00
Jonas Platte
d34a270919
Allow custom values for more enums 2020-11-02 00:29:47 +01:00
Jonas Platte
70a12864ef
Use new macros for existing future-compatible enums 2020-11-02 00:29:41 +01:00
Jonas Platte
e1975c2035
Be more consistent about whitespace 2020-10-24 00:44:01 +02:00
Julian Tescher
c3a074059f
Make custom enum variants doc hidden 2020-09-08 01:06:23 +02:00
Nicholas Young
7ccdaa34d6 feature gate exhaustive types for all spec crates:
- ruma-appservice-api
- ruma-client-api
- ruma-events
- ruma-federation-api
2020-09-01 18:39:41 -06:00
Jonas Platte
148d876acb
Use ServerNameBox in ruma-events, ruma-*-api 2020-08-13 22:01:15 +02:00
Jonas Platte
4a1b6d5607
Use DeviceIdBox in ruma-events, ruma-*-api 2020-08-13 21:19:41 +02:00
Jonas Platte
221befe401
Add constructors to MessageEventContent 2020-08-13 19:51:02 +02:00
Jonas Platte
d36dcdb202
Add NoticeMessageEventContent::html and TextMessageEventContent::html 2020-08-13 19:46:05 +02:00
Jonas Platte
4a5272e37b
Fix doc typo 2020-08-13 19:45:03 +02:00
Jonas Platte
de337ecb8c
events: impl Display for room::message::MessageFormat 2020-08-11 15:09:25 +02:00
Jonas Platte
aa3e7416a9
Update constructors in ruma_events::room::message 2020-08-11 01:54:23 +02:00
Amanda Graven
fdc15123b0
Reorganize encyption related code
Some types used for encryption related tasks need to be used across more
internal crates than expected, so a few have been moved and renamed for
clarity.

* Rename the key_algorithms module in ruma-identifiers-validation to crypto_algorithms
* Move ruma_events::Algorithm to ruma-identifiers-validation and rename it EventEncryptionAlgorithm
* Move DeviceKeys from ruma-client-api to ruma-common
2020-08-10 18:38:53 +02:00
Jonas Platte
1fbf05d71f
Fix some bad formatting 2020-08-08 21:52:58 +02:00
Isaiah Inuwa
7eb945976c Use strong types in signatures fields 2020-08-08 15:54:31 +02:00
Jonas Platte
9bc6ce9201
Use identifier macros for tests 2020-08-05 00:12:44 +02:00
Jonas Platte
066da75c7d
Remove pointless TryFrom usage 2020-08-05 00:12:44 +02:00
Jonas Platte
39c36176a6
Make in_reply_to in RelatesTo optional 2020-07-27 21:30:51 +02:00
Devin Ragotzy
4a34375449
Support multiple attribute arguments in ruma_event attribute (#161)
* Add parsing to allow ruma_event attribute to accept mutli args

* fixup! Add parsing to allow ruma_event attribute to accept mutli args

* Refactor MetaAttrs::parse and resolve review issues
2020-07-26 19:18:28 -04:00
Jonas Platte
1862d15365
Remove glob imports of C-like enums 2020-07-26 17:13:08 +02:00
Jonas Platte
08fbace022
Mark PinnedEventsEventContent as non_exhaustive 2020-07-25 03:04:19 +02:00
Jonas Platte
be175bbae6
Mark JoinRulesEventContent as non_exhaustive 2020-07-25 02:58:37 +02:00
Jonas Platte
e01706d1bb
Accept and Into<String> for FormattedBody::html 2020-07-25 02:03:36 +02:00
Jonas Platte
f56b530dc3
Rename TextMessageEventContent::new_plain to plain 2020-07-25 01:59:18 +02:00
Jonas Platte
76c2f5c449
Add a convenience constructor to FormattedBody 2020-07-25 01:44:06 +02:00
Jonas Platte
f9e76358a1
Fix typos 2020-07-24 20:53:01 +02:00
Jonas Platte
26850dbafb
Simplify MegolmV1AesSha2Content construction 2020-07-24 20:25:04 +02:00
Jonas Platte
4cbdc079b0
Improve string comparison impls 2020-07-22 19:17:24 +02:00
Jonas Platte
b24df92692
Make DeviceId a newtype rather than an alias 2020-07-22 18:59:33 +02:00
Jonas Platte
8d8e18afbc
Make RoomVersionId a non-exhaustive enum 2020-07-22 18:38:37 +02:00
Jonas Platte
7aac2f5439
Mark HistoryVisibilityEventContent as non_exhaustive 2020-07-17 01:29:27 +02:00
Jonas Platte
7bb6c66051
Mark GuestAccessEventContent as non_exhaustive 2020-07-17 01:21:59 +02:00
Jonas Platte
b31a6eac65
Mark EncryptionEventContent as non_exhaustive 2020-07-17 01:20:41 +02:00
Jonas Platte
34e89f4d11
Update EncryptionEventContent docs 2020-07-17 01:20:30 +02:00
Jonas Platte
6644ae487f
Mark types in ruma_events::room::encrypted as non_exhaustive 2020-07-17 01:07:16 +02:00
Jonas Platte
80ab6f0190
Mark types in ruma_events::room::create as non_exhaustive 2020-07-17 01:07:16 +02:00
Jonas Platte
c35af9c5ea
Mark FeedbackEventContent as non_exhaustive 2020-07-17 01:07:16 +02:00
Jonas Platte
7216cbd5bd
Mark CanonicalAliasEventContent as non_exhaustive 2020-07-17 01:07:16 +02:00
Jonas Platte
c9c56c3404
Mark AvatarEventContent as non_exhaustive 2020-07-17 01:07:15 +02:00
Ragotzy.devin
1db0082281
Add redact method to all event_enum! generated enums
… and to AliasesEventContent
2020-07-17 01:07:07 +02:00
skim
b260a13d4b
move and rename ruma_events::json::EventJson to ruma_common::raw::Raw 2020-07-16 07:31:36 -07:00
Jonas Platte
f517099825
Mark m.room.aliases content as non_exhaustive 2020-07-16 02:48:11 +02:00
Ragotzy.devin
e7d9fb785d
Split UnsignedData into multiple types
* Rename UnsignedData -> Unsigned
* Add RedacedUnsigned and RedactedSyncUnsigned
2020-07-16 02:34:36 +02:00
Devin R
6f69a6fe76
Fix redacted aliases event deserialization 2020-07-15 17:10:47 +02:00
Jonas Platte
a3e5d679a1
Revert making identifier types generic over the underlying string type
At the same time, this commit makes `ServerName` a newtype around str so
other identifier types can borrow out their server name part as a
`&ServerName`. This technique works for `ServerName` because it keeps no
additional metadata. For the other identifier types to support being
created in borrowed form from a string slice, custom DSTs first have to
be added to Rust.
2020-07-14 23:02:51 +02:00
Jonas Platte
8683901e14
Don't to_string() string literals 2020-07-14 22:11:05 +02:00
Devin R
204a90ac43 Rename *EventStub -> Sync*Event 2020-07-14 13:44:39 -04:00
Ragotzy.devin
5e428ac95a
Add support for redacted events
* Generate redacted event enums and implement corresponding event structs
* Enable the *EventContent derives to generate redacted events

  Most redacted event code is now generated by the *EventContent derive
  macro. The exception are any content structs with the custom_redaction
  attribute. This leaves implementing up to the user.
* Add redact method to Redaction/CustomEventContent
* Add accessor methods for redacted event enums
* Add RedactedEventContent trait and super traits to match EventContent
2020-07-11 14:59:36 +02:00
Guillem Nieto
202af7a523 Skip serializing optional values on RoomEncryption
If this parameters are not skipped, they are sent as null and some
clients (at least, Riot) coerces them to 0.
2020-06-25 21:06:27 +02:00