pub mod dummy;
pub mod forwarded_room_key;
pub mod olm_v1;
pub mod room;
pub mod room_key;
pub mod room_key_bundle;
pub mod room_key_request;
pub mod room_key_withheld;
pub mod secret_send;
mod to_device;
mod utd_cause;
use ruma::serde::Raw;
pub use to_device::{ToDeviceCustomEvent, ToDeviceEvent, ToDeviceEvents};
pub use utd_cause::{CryptoContextInfo, UtdCause};
pub trait EventType {
const EVENT_TYPE: &'static str;
fn event_type(&self) -> &str {
Self::EVENT_TYPE
}
}
impl<T: EventType> EventType for Raw<T> {
const EVENT_TYPE: &'static str = T::EVENT_TYPE;
}
fn from_str<'a, T, E>(string: &'a str) -> Result<T, E>
where
T: serde::Deserialize<'a>,
E: serde::de::Error,
{
serde_json::from_str(string).map_err(serde::de::Error::custom)
}