70 Commits

Author SHA1 Message Date
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
3f3cf83ceb
Remove glob imports of modules 2020-07-26 17:13:00 +02:00
Jonas Platte
05d0a3c04b
fixup 2020-07-26 16:30:11 +02:00
Jonas Platte
d7463ce37d
Remove things that can't be properly deprecated
See https://github.com/rust-lang/rust/issues/47236
2020-07-26 16:24:36 +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
Devin Ragotzy
4be63127f7
Add into_full_event and From<> impls to convert between sync and full events 2020-07-24 14:45:38 +02:00
Devin R
3a0138dea1 Use Box instead of Raw for the redacted Unsigned types redacted_because 2020-07-22 20:29:01 +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
Isaiah Inuwa
ade43c8516 Use ServerName everywhere 2020-07-18 07:50:53 -05:00
Devin R
cd2f011fb3 Add AnyPossiblyRedacted* enums to event_enum! code-gen 2020-07-17 14:20:17 +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
a5514fd7ca
Update lint attributes for ruma-events 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
Damir Jelić
b5b0ca267b
ruma-events: Update the constructor of the start event for the new key agreement. 2020-07-15 12:25:00 +02:00
Damir Jelić
9eb0266cb0
ruma-events: Test the key agreement serialization/deserialization. 2020-07-15 12:23:11 +02:00
Damir Jelić
02d7f8d17b
ruma-events: Expose the content fields of the verification start event publicly. 2020-07-15 12:23:10 +02:00
Damir Jelić
c93cfb986b
ruma-events: Add the new key agreement method. 2020-07-15 12:22:53 +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
1db4898cde
Refactor the input parsing of event_enums! 2020-07-13 15:31:15 +02: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
gnieto
6fd4b9b8b0
Properly serialize get_tags Response
`get_tags` route response was adding the `tags` property twice, which is
not the expected behaviour. This is an example of the previous
serialization of the `get_tags` route:

`{"tags":{"tags":{"u.example":{"order":0.55},"u.another":{"order":0.11}}}}`

The new serialization removes the outer `tags` property.
2020-07-05 13:20:47 +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
Ragotzy.devin
928fe6ce26
Add AnyEphemeralRoomEventStub and use it in sync response 2020-06-25 13:19:39 +02:00
Devin R
2b6eba69dd Add membership_change method to stub and stripped event
Fix redaction event detection in event_enum! macro. Add encrypted event
to AnyMessageEvent enum.
2020-06-24 02:11:28 +02:00
Ragotzy.devin
fdf87a38a2
Generate stub/stripped Any*Event enums in event_enum! macro
* Conditionally emit tokens for content enum in event_enum! and the path
  for each Any*Event variant contents.
* Add tests for redaction events now that they are part of Any*Event enums.
* Fix any tests that used Any*EventContent.
2020-06-23 22:33:37 +02:00
Jonas Platte
034a9b6926
Use js_int::uint macro for UInt constants 2020-06-19 23:00:57 +02:00