events: Rework the event enum hierarchy
This commit is contained in:
@@ -18,7 +18,7 @@ use std::{
|
||||
};
|
||||
|
||||
use criterion::{criterion_group, criterion_main, Criterion};
|
||||
use event::OriginalStateEvent;
|
||||
use event::PduEvent;
|
||||
use js_int::{int, uint};
|
||||
use maplit::{btreemap, hashmap, hashset};
|
||||
use ruma_common::{
|
||||
@@ -232,7 +232,7 @@ impl<E: Event> TestStore<E> {
|
||||
}
|
||||
}
|
||||
|
||||
impl TestStore<OriginalStateEvent> {
|
||||
impl TestStore<PduEvent> {
|
||||
#[allow(clippy::type_complexity)]
|
||||
fn set_up(
|
||||
&mut self,
|
||||
@@ -372,7 +372,7 @@ fn to_pdu_event<S>(
|
||||
content: Box<RawJsonValue>,
|
||||
auth_events: &[S],
|
||||
prev_events: &[S],
|
||||
) -> Arc<OriginalStateEvent>
|
||||
) -> Arc<PduEvent>
|
||||
where
|
||||
S: AsRef<str>,
|
||||
{
|
||||
@@ -384,7 +384,7 @@ where
|
||||
let prev_events = prev_events.iter().map(AsRef::as_ref).map(event_id).collect::<Vec<_>>();
|
||||
|
||||
let state_key = state_key.map(ToOwned::to_owned);
|
||||
Arc::new(OriginalStateEvent {
|
||||
Arc::new(PduEvent {
|
||||
event_id: id.try_into().unwrap(),
|
||||
rest: Pdu::RoomV3Pdu(RoomV3Pdu {
|
||||
room_id: room_id().to_owned(),
|
||||
@@ -406,7 +406,7 @@ where
|
||||
|
||||
// all graphs start with these input events
|
||||
#[allow(non_snake_case)]
|
||||
fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<PduEvent>> {
|
||||
vec![
|
||||
to_pdu_event::<&EventId>(
|
||||
"CREATE",
|
||||
@@ -488,7 +488,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
|
||||
// all graphs start with these input events
|
||||
#[allow(non_snake_case)]
|
||||
fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<PduEvent>> {
|
||||
vec![
|
||||
to_pdu_event(
|
||||
"PA",
|
||||
@@ -541,7 +541,7 @@ mod event {
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::value::RawValue as RawJsonValue;
|
||||
|
||||
impl Event for OriginalStateEvent {
|
||||
impl Event for PduEvent {
|
||||
type Id = Box<EventId>;
|
||||
|
||||
fn event_id(&self) -> &Self::Id {
|
||||
@@ -631,7 +631,7 @@ mod event {
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct OriginalStateEvent {
|
||||
pub struct PduEvent {
|
||||
pub event_id: Box<EventId>,
|
||||
#[serde(flatten)]
|
||||
pub rest: Pdu,
|
||||
|
||||
@@ -982,7 +982,7 @@ mod tests {
|
||||
event_auth::valid_membership_change,
|
||||
test_utils::{
|
||||
alice, charlie, ella, event_id, member_content_ban, member_content_join, room_id,
|
||||
to_pdu_event, OriginalStateEvent, INITIAL_EVENTS, INITIAL_EVENTS_CREATE_ROOM,
|
||||
to_pdu_event, PduEvent, INITIAL_EVENTS, INITIAL_EVENTS_CREATE_ROOM,
|
||||
},
|
||||
Event, RoomVersion, StateMap,
|
||||
};
|
||||
@@ -1021,7 +1021,7 @@ mod tests {
|
||||
&sender,
|
||||
fetch_state(RoomEventType::RoomMember, sender.to_string()),
|
||||
&requester,
|
||||
None::<OriginalStateEvent>,
|
||||
None::<PduEvent>,
|
||||
fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()),
|
||||
fetch_state(RoomEventType::RoomJoinRules, "".to_owned()),
|
||||
None,
|
||||
@@ -1065,7 +1065,7 @@ mod tests {
|
||||
&sender,
|
||||
fetch_state(RoomEventType::RoomMember, sender.to_string()),
|
||||
&requester,
|
||||
None::<OriginalStateEvent>,
|
||||
None::<PduEvent>,
|
||||
fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()),
|
||||
fetch_state(RoomEventType::RoomJoinRules, "".to_owned()),
|
||||
None,
|
||||
@@ -1109,7 +1109,7 @@ mod tests {
|
||||
&sender,
|
||||
fetch_state(RoomEventType::RoomMember, sender.to_string()),
|
||||
&requester,
|
||||
None::<OriginalStateEvent>,
|
||||
None::<PduEvent>,
|
||||
fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()),
|
||||
fetch_state(RoomEventType::RoomJoinRules, "".to_owned()),
|
||||
None,
|
||||
@@ -1153,7 +1153,7 @@ mod tests {
|
||||
&sender,
|
||||
fetch_state(RoomEventType::RoomMember, sender.to_string()),
|
||||
&requester,
|
||||
None::<OriginalStateEvent>,
|
||||
None::<PduEvent>,
|
||||
fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()),
|
||||
fetch_state(RoomEventType::RoomJoinRules, "".to_owned()),
|
||||
None,
|
||||
@@ -1214,7 +1214,7 @@ mod tests {
|
||||
&sender,
|
||||
fetch_state(RoomEventType::RoomMember, sender.to_string()),
|
||||
&requester,
|
||||
None::<OriginalStateEvent>,
|
||||
None::<PduEvent>,
|
||||
fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()),
|
||||
fetch_state(RoomEventType::RoomJoinRules, "".to_owned()),
|
||||
Some(&alice()),
|
||||
@@ -1230,7 +1230,7 @@ mod tests {
|
||||
&sender,
|
||||
fetch_state(RoomEventType::RoomMember, sender.to_string()),
|
||||
&requester,
|
||||
None::<OriginalStateEvent>,
|
||||
None::<PduEvent>,
|
||||
fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()),
|
||||
fetch_state(RoomEventType::RoomJoinRules, "".to_owned()),
|
||||
Some(&ella()),
|
||||
@@ -1283,7 +1283,7 @@ mod tests {
|
||||
&sender,
|
||||
fetch_state(RoomEventType::RoomMember, sender.to_string()),
|
||||
&requester,
|
||||
None::<OriginalStateEvent>,
|
||||
None::<PduEvent>,
|
||||
fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()),
|
||||
fetch_state(RoomEventType::RoomJoinRules, "".to_owned()),
|
||||
None,
|
||||
|
||||
@@ -657,8 +657,7 @@ mod tests {
|
||||
room_version::RoomVersion,
|
||||
test_utils::{
|
||||
alice, bob, charlie, do_check, ella, event_id, member_content_ban, member_content_join,
|
||||
room_id, to_init_pdu_event, to_pdu_event, zara, OriginalStateEvent, TestStore,
|
||||
INITIAL_EVENTS,
|
||||
room_id, to_init_pdu_event, to_pdu_event, zara, PduEvent, TestStore, INITIAL_EVENTS,
|
||||
},
|
||||
Event, StateMap,
|
||||
};
|
||||
@@ -1043,7 +1042,7 @@ mod tests {
|
||||
let _ =
|
||||
tracing::subscriber::set_default(tracing_subscriber::fmt().with_test_writer().finish());
|
||||
|
||||
let mut store = TestStore::<OriginalStateEvent>(hashmap! {});
|
||||
let mut store = TestStore::<PduEvent>(hashmap! {});
|
||||
|
||||
// build up the DAG
|
||||
let (state_at_bob, state_at_charlie, expected) = store.set_up();
|
||||
@@ -1209,7 +1208,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[allow(non_snake_case)]
|
||||
fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<PduEvent>> {
|
||||
vec![
|
||||
to_pdu_event(
|
||||
"PA",
|
||||
@@ -1254,7 +1253,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[allow(non_snake_case)]
|
||||
fn JOIN_RULE() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
fn JOIN_RULE() -> HashMap<Box<EventId>, Arc<PduEvent>> {
|
||||
vec![
|
||||
to_pdu_event(
|
||||
"JR",
|
||||
|
||||
@@ -29,12 +29,12 @@ use tracing::info;
|
||||
|
||||
use crate::{auth_types_for_event, Error, Event, Result, StateMap};
|
||||
|
||||
pub use event::OriginalStateEvent;
|
||||
pub use event::PduEvent;
|
||||
|
||||
static SERVER_TIMESTAMP: AtomicU64 = AtomicU64::new(0);
|
||||
|
||||
pub fn do_check(
|
||||
events: &[Arc<OriginalStateEvent>],
|
||||
events: &[Arc<PduEvent>],
|
||||
edges: Vec<Vec<Box<EventId>>>,
|
||||
expected_state_ids: Vec<Box<EventId>>,
|
||||
) {
|
||||
@@ -77,7 +77,7 @@ pub fn do_check(
|
||||
}
|
||||
|
||||
// event_id -> OriginalStateEvent
|
||||
let mut event_map: HashMap<Box<EventId>, Arc<OriginalStateEvent>> = HashMap::new();
|
||||
let mut event_map: HashMap<Box<EventId>, Arc<PduEvent>> = HashMap::new();
|
||||
// event_id -> StateMap<Box<EventId>>
|
||||
let mut state_at_event: HashMap<Box<EventId>, StateMap<Box<EventId>>> = HashMap::new();
|
||||
|
||||
@@ -245,7 +245,7 @@ impl<E: Event> TestStore<E> {
|
||||
|
||||
// A StateStore implementation for testing
|
||||
#[allow(clippy::type_complexity)]
|
||||
impl TestStore<OriginalStateEvent> {
|
||||
impl TestStore<PduEvent> {
|
||||
pub fn set_up(
|
||||
&mut self,
|
||||
) -> (StateMap<Box<EventId>>, StateMap<Box<EventId>>, StateMap<Box<EventId>>) {
|
||||
@@ -387,12 +387,12 @@ pub fn to_init_pdu_event(
|
||||
ev_type: RoomEventType,
|
||||
state_key: Option<&str>,
|
||||
content: Box<RawJsonValue>,
|
||||
) -> Arc<OriginalStateEvent> {
|
||||
) -> Arc<PduEvent> {
|
||||
let ts = SERVER_TIMESTAMP.fetch_add(1, SeqCst);
|
||||
let id = if id.contains('$') { id.to_owned() } else { format!("${}:foo", id) };
|
||||
|
||||
let state_key = state_key.map(ToOwned::to_owned);
|
||||
Arc::new(OriginalStateEvent {
|
||||
Arc::new(PduEvent {
|
||||
event_id: id.try_into().unwrap(),
|
||||
rest: Pdu::RoomV3Pdu(RoomV3Pdu {
|
||||
room_id: room_id().to_owned(),
|
||||
@@ -420,7 +420,7 @@ pub fn to_pdu_event<S>(
|
||||
content: Box<RawJsonValue>,
|
||||
auth_events: &[S],
|
||||
prev_events: &[S],
|
||||
) -> Arc<OriginalStateEvent>
|
||||
) -> Arc<PduEvent>
|
||||
where
|
||||
S: AsRef<str>,
|
||||
{
|
||||
@@ -430,7 +430,7 @@ where
|
||||
let prev_events = prev_events.iter().map(AsRef::as_ref).map(event_id).collect::<Vec<_>>();
|
||||
|
||||
let state_key = state_key.map(ToOwned::to_owned);
|
||||
Arc::new(OriginalStateEvent {
|
||||
Arc::new(PduEvent {
|
||||
event_id: id.try_into().unwrap(),
|
||||
rest: Pdu::RoomV3Pdu(RoomV3Pdu {
|
||||
room_id: room_id().to_owned(),
|
||||
@@ -452,7 +452,7 @@ where
|
||||
|
||||
// all graphs start with these input events
|
||||
#[allow(non_snake_case)]
|
||||
pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<PduEvent>> {
|
||||
vec![
|
||||
to_pdu_event::<&EventId>(
|
||||
"CREATE",
|
||||
@@ -534,7 +534,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
|
||||
// all graphs start with these input events
|
||||
#[allow(non_snake_case)]
|
||||
pub fn INITIAL_EVENTS_CREATE_ROOM() -> HashMap<Box<EventId>, Arc<OriginalStateEvent>> {
|
||||
pub fn INITIAL_EVENTS_CREATE_ROOM() -> HashMap<Box<EventId>, Arc<PduEvent>> {
|
||||
vec![to_pdu_event::<&EventId>(
|
||||
"CREATE",
|
||||
alice(),
|
||||
@@ -567,7 +567,7 @@ pub mod event {
|
||||
|
||||
use crate::Event;
|
||||
|
||||
impl Event for OriginalStateEvent {
|
||||
impl Event for PduEvent {
|
||||
type Id = Box<EventId>;
|
||||
|
||||
fn event_id(&self) -> &Self::Id {
|
||||
@@ -658,20 +658,9 @@ pub mod event {
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
#[allow(clippy::exhaustive_structs)]
|
||||
pub struct OriginalStateEvent {
|
||||
pub struct PduEvent {
|
||||
pub event_id: Box<EventId>,
|
||||
#[serde(flatten)]
|
||||
pub rest: Pdu,
|
||||
}
|
||||
|
||||
//impl OriginalStateEvent {
|
||||
// pub fn state_key(&self) -> &str {
|
||||
// match &self.rest {
|
||||
// Pdu::RoomV1Pdu(ev) => ev.state_key.as_ref().unwrap(),
|
||||
// Pdu::RoomV3Pdu(ev) => ev.state_key.as_ref().unwrap(),
|
||||
// #[cfg(not(feature = "unstable-exhaustive-types"))]
|
||||
// _ => unreachable!("new PDU version"),
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user