51 Commits

Author SHA1 Message Date
Kévin Commaille
a70f99a233 macros: Allow EventContent derive macro to work on enums
Requires to disable all automatic type generation.
2023-09-15 13:19:22 +02:00
Jonas Platte
31331f3165
Bring back ruma-events
Co-authored-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-08-28 10:23:54 +02:00
Jonas Platte
8e10064364 Enforce import grouping
Includes a few manual changes to make rustfmt behave a bit better.
2023-08-22 12:31:49 +02:00
Kévin Commaille
bcae4e5799 chore: Use .is_some_and(…) instead of .map_or(false, …) 2023-08-14 16:17:25 +02:00
Jonas Platte
3dac70ead9
Remove most unreachable visibility modifiers 2023-07-19 14:32:14 +02:00
Jonas Platte
ad457c1c11
Rerun rustfmt 2023-07-19 13:53:15 +02:00
Jonas Platte
cfc4c66820
Rewrap lines to fit macro input in maximum line length 2023-07-19 13:53:03 +02:00
Jonas Platte
cb512f01d6
macros: Fix weird indentation 2023-04-24 17:02:23 +02:00
Jonas Platte
53622f8ce0
macros: Upgrade syn to 2.0 2023-04-24 17:02:23 +02:00
Jonas Platte
9c65a7dcae
events: Use input visibility for generated types in EventContent derive 2023-02-07 20:55:53 +01:00
Jonas Platte
19006cd047
Clean up code blocks in doc strings 2023-02-01 16:58:47 +01:00
Jonas Platte
62ed200a56
events: Use possibly-redacted content for StrippedStateEvent 2023-01-16 21:28:53 +01:00
Jonas Platte
2eba14f0cc
events: Rework the content traits 2023-01-16 21:28:53 +01:00
Jonas Platte
49a0650f62
events: Remove EventKind
The EventType associated type on EventContent practically provides the
same information.
2023-01-16 21:17:00 +01:00
Jonas Platte
3a722965f5
macros: Refactor event content generation 2023-01-10 11:46:49 +01:00
Jonas Platte
68a596dbc3
events: Remove RedactedEventContent trait 2023-01-10 11:46:49 +01:00
Kévin Commaille
1d8ea75f6f events: Remove EventContent::from_parts 2023-01-10 11:37:31 +01:00
Kévin Commaille
97b212795a events: Create EventContentFromType
Implement it for:
- event contents that implement Deserialize
- event contents with event types with a suffix
- custom event contents
2023-01-10 11:37:31 +01:00
Kévin Commaille
cd74cdcc0e
events: Generate PossiblyRedacted type for original state events
Fix deserialization of redacted prev_content
Can be overriden with the `custom_possibly_redacted` attribute

Co-authored-by: Jonas Platte <jplatte@element.io>
2023-01-03 10:28:40 +01:00
Kévin Commaille
9d8c9c477f events: Move Unsigned type to new OriginalStateEventContent trait
Only original events require it.
2022-12-23 17:55:03 +01:00
Kévin Commaille
dab2956039 events: Use a struct for parsing of EventContent attributes 2022-11-12 11:14:04 +01:00
Jonas Platte
94990f60f2 events: Don't skip serializing empty content of redacted events 2022-11-09 17:11:50 +01:00
Jonas Platte
c7e84c5249
Fix clippy lints
Automated using `cargo clippy --fix`.
2022-10-26 13:38:29 +02:00
Kévin Commaille
ec853e968a events: Generate structs without relation for events that can be replaced 2022-10-17 20:27:49 +02:00
Jonas Platte
aa8e48d1c3
events: Allow customizing the unsigned type of state events 2022-09-12 13:10:10 +02:00
Jonas Platte
7957dd6adf
events: Replace generic "alias" trait implementations by individual ones
… so that rustdoc lists types implementing them properly.
2022-09-05 11:16:30 +02:00
Jonas Platte
8912182c56
Increase usage of implicit named arguments in format strings 2022-06-03 10:06:28 +02:00
Kévin Commaille
74423b7a4e
events: Split EventMeta between struct and field attributes 2022-05-16 17:08:36 +02:00
Kévin Commaille
1073530ac6 events: Add support for type aliases
Allow to use unstable types
2022-05-16 13:24:25 +02:00
Kévin Commaille
abf735093c
events: Fix serde of event types with suffix 2022-05-09 10:41:22 +00:00
Jonas Platte
ae7461622c events: Update state key types for all state events
… and make it mandatory to specify for state events.
2022-04-21 11:16:38 +02:00
Jonas Platte
d8b7886382 events: Allow state key type to be customized by content type 2022-04-21 11:16:38 +02:00
Jonas Platte
d87874314b
events: Add 'Original' prefix to unredacted types with a redacted form 2022-04-05 14:29:17 +02:00
Jonas Platte
1415e32a1d macros: Remove some unnecessary short-circuiting in event proc-macros 2022-04-02 20:31:37 +02:00
Jonas Platte
634f93c985 macros: Improve error handling 2022-04-02 20:31:37 +02:00
Jonas Platte
7fbb28f223
macros: Finish support for variable event types 2022-03-23 21:17:18 +01:00
Jonas Platte
ef9c84716c
common: Allow variable event types in EventContent derive 2022-03-23 21:17:18 +01:00
Jonas Platte
862ee426ab
macros: Fix docs 2022-03-16 12:20:17 +01:00
Jonas Platte
6dc0bf248b
Use *EventType enums in more places 2022-03-16 12:20:17 +01:00
Jonas Platte
0f18deae1d
macros: Consistently use syn::Result type alias 2022-03-16 12:20:17 +01:00
Jonas Platte
c16ba45c9e
common: Replace event content marker traits with an associated type 2022-03-16 12:20:16 +01:00
Jonas Platte
8805b8f2e3
macros: Consistently put ruma_common import path last 2022-03-16 12:20:16 +01:00
Jonas Platte
d78fb70953
macros: Ensure event content types are structs 2022-03-14 16:32:17 +01:00
Jonas Platte
0b10151bcb
macros: Only iterate fields once in EventContent derive 2022-03-14 16:32:17 +01:00
Jonas Platte
46bab5cca6
macros: Fix unnecessary named fields requirement in EventContent derive 2022-03-14 16:32:17 +01:00
Jonas Platte
44ed91a5af
macros: Fix inconsistent naming 2022-03-14 16:32:17 +01:00
Kévin Commaille
088d1872b7
common: Merge ruma-identifiers into ruma-common 2022-03-09 17:46:51 +00:00
Jonas Platte
1192bd1099
common: Create crate-level macro re-exports module 2022-03-04 17:00:01 +01:00
Jonas Platte
f4b539bec5
macros: Fix a confusing variable name 2022-03-04 15:08:16 +01:00
Kévin Commaille
84e1c919c9
client-api: Implement space summary API
According to MSC2946
2022-03-01 15:57:43 +01:00