494 Commits

Author SHA1 Message Date
Jonas Platte
d4a196f682
Update ReceiptEventContent representation
… and implement Deref, DerefMut for it
2020-06-09 01:33:40 +02:00
Jonas Platte
1f2c186ce1
Remove ToDeviceEventContent
… since any event can be sent using to-device messaging
2020-06-09 01:22:50 +02:00
Ragotzy.devin
6a0a10fcff
Add BasicEventContent derive and create AnyBasicEventContent enum
Also remove PresenceEventContent derive and expand code gen
2020-06-08 23:51:22 +02:00
Ragotzy.devin
d38e385aab
Remove unused imports and fix serde::ser::Error trait not being in scope 2020-06-08 14:40:59 +02:00
Ragotzy.devin
800fba7c32
Implement PresenceEvent and EphemeralEvent
* Add derive for PresenceEventContent and create struct AnyPresenceEventContent
since there is only one content type
* Add derive for Ephemeral event and create enum AnyEphemeralEventContent, convert
receipt and typing to use derive(EphemeralEventContent) over ruma_api!
2020-06-07 22:56:43 +02:00
Ragotzy.devin
ef3a6787a0
Remove src/from_raw.rs and ruma-events-macro/src/from_raw.rs 2020-06-07 22:21:04 +02:00
Jonas Platte
8c271fb835
Add event_enums.rs
only contains AnyStateEvent for now, more will be added
2020-06-07 20:18:07 +02:00
Jonas Platte
d3b17e2b5b
Fix a typo 2020-06-07 20:08:50 +02:00
Jonas Platte
dd89b24aa4
Update custom module 2020-06-07 17:50:47 +02:00
Jonas Platte
283370ff2f
Add more event kinds 2020-06-07 16:15:24 +02:00
Jonas Platte
315ac55d46
Replace state.rs, messages.rs by event_kinds.rs, content_enums.rs 2020-06-07 16:01:35 +02:00
Jonas Platte
aa7a54015c
Rename ruma_content_collection to ruma_content_enum 2020-06-07 15:54:23 +02:00
Jonas Platte
f531dce754
Externalize generic event struct tests 2020-06-07 15:48:44 +02:00
Jonas Platte
b3f024bf13
Update list of events in AnyStateEventContent 2020-06-07 01:18:42 +02:00
Ragotzy.devin
0a91ac5126
Remove raw mod and TryFromRaw/FromRaw, derive Deserialize for event content types 2020-06-07 01:18:42 +02:00
Ragotzy.devin
2c8d609095
Add Event derive macro 2020-06-07 01:18:42 +02:00
Jonas Platte
6a844625fc
Clean up macro crate attributes 2020-06-07 01:18:42 +02:00
Jonas Platte
76cd387506
Remove support for state events in ruma_event! 2020-06-07 01:18:42 +02:00
Jonas Platte
b95b7db0d4
Convert remaining state structs from ruma_event! to derive(StateEventContent) 2020-06-07 01:18:42 +02:00
Jonas Platte
74f680f8ed
Add back all commented-out room events 2020-06-07 01:18:42 +02:00
Jonas Platte
7d303fff7e
Fix unsigned field not being serialized for MessageEvent, StateEvent 2020-06-07 01:18:41 +02:00
Jonas Platte
158287204b
Fix a typo 2020-06-07 01:18:41 +02:00
Jonas Platte
35eb0bcfbf
Re-export MessageEvent from the crate root 2020-06-07 01:18:41 +02:00
Ragotzy.devin
33ac5267a9
Implement MessageEvent and AnyMessageEventContent 2020-06-07 01:18:34 +02:00
Jonas Platte
24f720d1f1
Convert most message events from ruma_event! to derive(MessageEventContent)
* m.sticker
* m.call.answer
* m.call.candidates
* m.call.hangup
* m.call.invite
2020-06-07 01:11:15 +02:00
Ragotzy.devin
80ff10ae6a
Move event content collection trait impl's into macro code
* Move the EventContent and content marker traits into macro.
* Move the raw AnyStateEventContent enum and RawEventContent trait into macro, generate all of the AnyStateEventContent type and impls needed for raw.
* Factor out raw mod codegen to seperate fn, add docs to codegen enum + variants, remove unused imports
2020-06-07 01:11:15 +02:00
Jonas Platte
5091b9a9a8
Integrate generic event types and EventContent trait with TryFromRaw 2020-06-07 01:11:15 +02:00
Ragotzy.devin
3814690b29
event_content_collection!: implement parsing input and generating an enum 2020-06-07 01:11:15 +02:00
Ragotzy.devin
7ec162678e
Implement first trybuild tests
and use a dedicated InvalidEvent constructor fn in EventContent derives
2020-06-07 01:11:13 +02:00
Ragotzy.devin
0c0dafa2c5
Move event content derives into one place and share code 2020-06-07 01:10:55 +02:00
Jonas Platte
cc3d0af40c
Make state a private module 2020-06-07 01:10:55 +02:00
Jonas Platte
945b8c535d
Add unsigned field to StateEvent 2020-06-07 01:10:55 +02:00
Jonas Platte
1377487b6c
Declare more state event content structs without ruma_event! 2020-06-07 01:10:54 +02:00
Jonas Platte
eceef3b96d
Declare a few state event content structs without the ruma_event! macro 2020-06-07 01:09:12 +02:00
Ragotzy.devin
ef6e2e7023
Add derive macro for StateEventContent 2020-06-07 01:02:49 +02:00
Jonas Platte
27a9b36499
Delete collections module 2020-06-07 01:02:49 +02:00
Jonas Platte
5dc1405d9d
Add MessageEventContent trait, update docs 2020-06-07 01:02:49 +02:00
Ragotzy.devin
f0c94958fa
Move raw mod into FromRaw derive 2020-06-07 01:02:49 +02:00
Ragotzy.devin
1a9b0f3e8b
Add StateEvent<C> and AnyStateEvent 2020-06-07 01:02:49 +02:00
Ragotzy.devin
3d01bfa96d
Remove Event, RoomEvent and StateEvent traits 2020-06-07 01:02:49 +02:00
Jonas Platte
c1ee72db0f
Use PresenceState from ruma_common 2020-06-04 21:15:14 +02:00
Jonas Platte
61e6493432
Sort derives by crate 2020-06-04 21:03:34 +02:00
Jonas Platte
3f74ba3270 Box optional sub-structs in avatar and message events
… to heavily decrease the size of some types.
Most importantly: MessageEventContent goes from 640 to 104 bytes in size
2020-06-04 17:48:52 +02:00
Jonas Platte
2eb29abd74
Remove FIXME in member.rs
This is being adressed in the spec, see
https://github.com/matrix-org/matrix-doc/pull/2591
2020-06-02 12:16:51 +02:00
Jonas Platte
7395f940a7
Change PushCondition from using newtype variants to struct variants 2020-05-31 23:26:41 +02:00
Jonas Platte
da7a97d490
Fixup for 16b9557 2020-05-31 22:56:51 +02:00
Jonas Platte
16b9557d74
Consolidate formatted body fields for message events 2020-05-31 16:10:01 +02:00
Jonas Platte
70b3ff2737
Update Matrix specification links 2020-05-31 15:50:17 +02:00
Timo Kösters
4d09416cd1
Add alt_aliases to CanonicalAliasEventContent 2020-05-30 17:51:23 +02:00
Jake Waksbaum
e05fdf84fd
Replace serde/strum renames with rename_all
Instead of applying a `#[serde(rename = "foo")]` or `#[strum(serialize =
"foo")]` to each field of a struct or variants of an enum, apply the
appropriate `#[serde(rename_all = "style")]` or `#[strum(serialize_all =
"style")]` to the struct/enum.

In addition, in the places where the `lowercase` style is used and all
the fields/variants are a single word, replace that with `snake_case`,
since that seems to be the default everywhere with multi-word
fields/variants.
2020-05-29 10:59:33 -04:00