events: Add codegen for ephemeral event enum room_id accessor
This commit is contained in:
parent
d7af96747c
commit
29b49d2edf
@ -30,7 +30,7 @@ type EventKindFn = fn(&EventKind, &EventKindVariation) -> bool;
|
||||
const EVENT_FIELDS: &[(&str, EventKindFn)] = &[
|
||||
("origin_server_ts", is_non_stripped_room_event),
|
||||
("room_id", |kind, var| {
|
||||
matches!(kind, EventKind::Message | EventKind::State)
|
||||
matches!(kind, EventKind::Message | EventKind::State | EventKind::Ephemeral)
|
||||
&& matches!(var, EventKindVariation::Full | EventKindVariation::Redacted)
|
||||
}),
|
||||
("event_id", is_non_stripped_room_event),
|
||||
|
@ -10,9 +10,9 @@ use ruma_events::{
|
||||
message::{MessageEventContent, MessageType, TextMessageEventContent},
|
||||
power_levels::PowerLevelsEventContent,
|
||||
},
|
||||
AnyEvent, AnyMessageEvent, AnyRoomEvent, AnyStateEvent, AnyStateEventContent,
|
||||
AnySyncMessageEvent, AnySyncRoomEvent, AnySyncStateEvent, MessageEvent, StateEvent,
|
||||
SyncMessageEvent, SyncStateEvent, Unsigned,
|
||||
AnyEphemeralRoomEvent, AnyEvent, AnyMessageEvent, AnyRoomEvent, AnyStateEvent,
|
||||
AnyStateEventContent, AnySyncMessageEvent, AnySyncRoomEvent, AnySyncStateEvent, MessageEvent,
|
||||
StateEvent, SyncMessageEvent, SyncStateEvent, Unsigned,
|
||||
};
|
||||
|
||||
fn message_event() -> JsonValue {
|
||||
@ -296,3 +296,23 @@ fn alias_event_field_access() {
|
||||
}
|
||||
assert_eq!(deser.event_type(), "m.room.aliases");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn ephemeral_event_deserialization() {
|
||||
let json_data = json!({
|
||||
"content": {
|
||||
"user_ids": [
|
||||
"@alice:matrix.org",
|
||||
"@bob:example.com"
|
||||
]
|
||||
},
|
||||
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
|
||||
"type": "m.typing"
|
||||
});
|
||||
|
||||
assert_matches!(
|
||||
from_json_value::<AnyEvent>(json_data),
|
||||
Ok(AnyEvent::Ephemeral(ephem @ AnyEphemeralRoomEvent::Typing(_)))
|
||||
if ephem.room_id() == &room_id!("!jEsUZKDJdhlrceRyVU:example.org")
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user