Add dummy event to to-device collection
This commit is contained in:
parent
0c6dd0ba32
commit
2a11207a9d
@ -9,6 +9,7 @@ use serde::{de::DeserializeOwned, Deserialize, Deserializer, Serialize};
|
|||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
dummy::DummyEventContent,
|
||||||
forwarded_room_key::ForwardedRoomKeyEventContent,
|
forwarded_room_key::ForwardedRoomKeyEventContent,
|
||||||
key::verification::{
|
key::verification::{
|
||||||
accept::AcceptEventContent, cancel::CancelEventContent, key::KeyEventContent,
|
accept::AcceptEventContent, cancel::CancelEventContent, key::KeyEventContent,
|
||||||
@ -26,7 +27,8 @@ use crate::{
|
|||||||
#[derive(Clone, Debug, PartialEq, Serialize)]
|
#[derive(Clone, Debug, PartialEq, Serialize)]
|
||||||
#[allow(clippy::large_enum_variant)]
|
#[allow(clippy::large_enum_variant)]
|
||||||
pub enum AnyToDeviceEvent {
|
pub enum AnyToDeviceEvent {
|
||||||
// TODO this should include a *m.dummy" event.
|
/// To-device version of the "m.dummy" event.
|
||||||
|
Dummy(ToDeviceDummy),
|
||||||
/// To-device version of the *m.room_key* event.
|
/// To-device version of the *m.room_key* event.
|
||||||
RoomKey(ToDeviceRoomKey),
|
RoomKey(ToDeviceRoomKey),
|
||||||
/// To-device version of the *m.room.encrypted* event.
|
/// To-device version of the *m.room.encrypted* event.
|
||||||
@ -58,6 +60,9 @@ pub struct ToDeviceEvent<C> {
|
|||||||
pub content: C,
|
pub content: C,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// To-device version of the *m.dummy* event.
|
||||||
|
pub type ToDeviceDummy = ToDeviceEvent<DummyEventContent>;
|
||||||
|
|
||||||
/// To-device version of the *m.room_key* event.
|
/// To-device version of the *m.room_key* event.
|
||||||
pub type ToDeviceRoomKey = ToDeviceEvent<RoomKeyEventContent>;
|
pub type ToDeviceRoomKey = ToDeviceEvent<RoomKeyEventContent>;
|
||||||
|
|
||||||
@ -97,6 +102,7 @@ impl TryFromRaw for AnyToDeviceEvent {
|
|||||||
use raw::AnyToDeviceEvent::*;
|
use raw::AnyToDeviceEvent::*;
|
||||||
|
|
||||||
match raw {
|
match raw {
|
||||||
|
Dummy(c) => conv(AnyToDeviceEvent::Dummy, c),
|
||||||
RoomKey(c) => conv(AnyToDeviceEvent::RoomKey, c),
|
RoomKey(c) => conv(AnyToDeviceEvent::RoomKey, c),
|
||||||
RoomEncrypted(c) => conv(AnyToDeviceEvent::RoomEncrypted, c),
|
RoomEncrypted(c) => conv(AnyToDeviceEvent::RoomEncrypted, c),
|
||||||
ForwardedRoomKey(c) => conv(AnyToDeviceEvent::ForwardedRoomKey, c),
|
ForwardedRoomKey(c) => conv(AnyToDeviceEvent::ForwardedRoomKey, c),
|
||||||
@ -151,6 +157,7 @@ mod raw {
|
|||||||
|
|
||||||
use super::ToDeviceEvent;
|
use super::ToDeviceEvent;
|
||||||
use crate::{
|
use crate::{
|
||||||
|
dummy::DummyEventContent,
|
||||||
forwarded_room_key::raw::ForwardedRoomKeyEventContent,
|
forwarded_room_key::raw::ForwardedRoomKeyEventContent,
|
||||||
key::verification::{
|
key::verification::{
|
||||||
accept::raw::AcceptEventContent, cancel::raw::CancelEventContent,
|
accept::raw::AcceptEventContent, cancel::raw::CancelEventContent,
|
||||||
@ -163,6 +170,8 @@ mod raw {
|
|||||||
util::get_field,
|
util::get_field,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// To-device version of the *m.dummy* event.
|
||||||
|
pub type ToDeviceDummy = ToDeviceEvent<DummyEventContent>;
|
||||||
/// To-device version of the *m.room_key* event.
|
/// To-device version of the *m.room_key* event.
|
||||||
pub type ToDeviceRoomKey = ToDeviceEvent<RoomKeyEventContent>;
|
pub type ToDeviceRoomKey = ToDeviceEvent<RoomKeyEventContent>;
|
||||||
/// To-device version of the *m.room.encrypted* event.
|
/// To-device version of the *m.room.encrypted* event.
|
||||||
@ -188,6 +197,8 @@ mod raw {
|
|||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
#[allow(clippy::large_enum_variant)]
|
#[allow(clippy::large_enum_variant)]
|
||||||
pub enum AnyToDeviceEvent {
|
pub enum AnyToDeviceEvent {
|
||||||
|
/// To-device version of the "m.dummy" event.
|
||||||
|
Dummy(ToDeviceDummy),
|
||||||
/// To-device version of the *m.room_key* event.
|
/// To-device version of the *m.room_key* event.
|
||||||
RoomKey(ToDeviceRoomKey),
|
RoomKey(ToDeviceRoomKey),
|
||||||
/// To-device version of the *m.room.encrypted* event.
|
/// To-device version of the *m.room.encrypted* event.
|
||||||
@ -224,6 +235,7 @@ mod raw {
|
|||||||
let event_type = get_field(&value, "type")?;
|
let event_type = get_field(&value, "type")?;
|
||||||
|
|
||||||
match event_type {
|
match event_type {
|
||||||
|
Dummy => from_value(value, AnyToDeviceEvent::Dummy),
|
||||||
RoomKey => from_value(value, AnyToDeviceEvent::RoomKey),
|
RoomKey => from_value(value, AnyToDeviceEvent::RoomKey),
|
||||||
RoomEncrypted => from_value(value, AnyToDeviceEvent::RoomEncrypted),
|
RoomEncrypted => from_value(value, AnyToDeviceEvent::RoomEncrypted),
|
||||||
ForwardedRoomKey => from_value(value, AnyToDeviceEvent::ForwardedRoomKey),
|
ForwardedRoomKey => from_value(value, AnyToDeviceEvent::ForwardedRoomKey),
|
||||||
@ -258,7 +270,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
room::encrypted::EncryptedEventContent,
|
room::encrypted::EncryptedEventContent,
|
||||||
room_key_request::Action,
|
room_key_request::Action,
|
||||||
Algorithm, EventResult,
|
Algorithm, Empty, EventResult,
|
||||||
};
|
};
|
||||||
|
|
||||||
macro_rules! deserialize {
|
macro_rules! deserialize {
|
||||||
@ -289,6 +301,19 @@ mod tests {
|
|||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn dummy() {
|
||||||
|
let dummy = r#"{
|
||||||
|
"content": {},
|
||||||
|
"sender": "@alice:example.org",
|
||||||
|
"type": "m.dummy"
|
||||||
|
}"#;
|
||||||
|
|
||||||
|
let event = deserialize! {dummy, AnyToDeviceEvent::Dummy};
|
||||||
|
|
||||||
|
assert_eq!(event.content, Empty);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn room_key() {
|
fn room_key() {
|
||||||
let room_key = r#"{
|
let room_key = r#"{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user