81 Commits

Author SHA1 Message Date
Jonas Platte
19ae6ff347
Remove lots of Copy implementations
so we don't have do breaking releases once they can't be Copy anymore.
2020-12-24 02:51:08 +01:00
David Vo
1a4e9aa20a
Implement MSC2448: BlurHashes for media
This exposes the pre-FCP unstable prefixed fields in MSC2448.
2020-12-07 13:01:15 +01:00
strct
018adf0819
Fix typo in docs 2020-12-07 10:51:41 +01:00
Damir Jelić
9b87fdda12
ruma-events: Allow encrypted megolm events to contain a relation 2020-12-04 19:53:46 +01:00
Damir Jelić
e0adcaa502
ruma-events: Add the key verification room message variant 2020-12-04 19:53:45 +01:00
Damir Jelić
7ec2b0b555
ruma-events: Create separate to-device content structs
While it's possible to share the content between different event types
in the usual case some event types have slightly different contents if
they are sent out as a to-device event vs a room message event.

The canonical example for this are key verification events where the
to-device version has a transaction id field but the room message
version uses event relationships for the same purpose.

This patch makes it possible for to-device events to have different
content structs. Type aliases are used where a common struct can be
used.
2020-12-04 19:48:34 +01:00
Jonas Platte
1ceade7b61
identifiers: Add more crypto-related types
Co-authored-by: Isaiah Inuwa <isaiah.inuwa@gmail.com>
2020-12-02 13:11:28 +01:00
Jonas Platte
5562a23aaa
Move Raw, Outgoing and all macro code from ruma-common to ruma-serde 2020-11-28 03:45:39 +01:00
Jonas Platte
e7f55ea2c6
Rewrap comments 2020-11-27 18:22:18 +01:00
Jonas Platte
6c4bd7c72c
events: Allow m.new_content to change the message type 2020-11-26 17:52:08 +01:00
Jonas Platte
48d1c97475
events: Add rudimentary support for m.new_content 2020-11-25 18:40:48 +01:00
Jonas Platte
1f14cb0393
events: Simplify html constructors for text & notice message event contents 2020-11-25 18:40:16 +01:00
Jonas Platte
199f5840dd
events: Make text & notice message event content non-exhaustive 2020-11-25 18:38:14 +01:00
Jonas Platte
abc18fae39
Fix some links in documentation 2020-11-24 03:25:02 +01:00
Jonas Platte
c322bd4d1e
events: Feature-gate reactions
and make relationships module public. The re-export idea doesn't make
sense with annotations being used in both reactions and messages.
2020-11-24 03:25:02 +01:00
Jonas Platte
60d12470c9
events: Allow missing fields in m.room.third_party_invite under unstable-synapse-quirks 2020-11-23 19:32:28 +01:00
Jonas Platte
634c3f1ee5
events: Allow m.room.tombstone without a body under unstable-synapse-quirks 2020-11-23 19:31:44 +01:00
Jonas Platte
ee4280cea2
events: Allow the url in m.room.avatar to be null / missing
This isn't allowed in any version of the spec, but it's the only way to
unset an avatar and will have to be supported in the future.

C.f. https://github.com/matrix-org/matrix-doc/issues/2006
2020-11-23 14:18:41 +01:00
Jonas Platte
0ae0a89467
events: Remove accidentally copy-pasted docs line 2020-11-23 14:15:54 +01:00
Alejandro Domínguez
d16fd4b2c1 Enable support in power level events for old Synapse events with strings 2020-11-20 14:31:10 +01:00
Jonas Platte
9a4206b1b2
events: Add a test for edit deserialization without unstable-pre-spec 2020-11-18 14:13:15 +01:00
Damir Jelić
cf7d4b40e1 events: Add support for the new relation types 2020-11-10 13:30:52 +01:00
Jonas Platte
374603f51c
Rename SigningKeyId to ServerSigningKeyId 2020-11-08 19:24:48 +01:00
Isaiah Inuwa
b793a790db
Rename ServerKeyId to SigningKeyId 2020-11-08 13:21:55 +01:00
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