Optimize Pdu prev_events and auth_events containers.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-09-23 18:12:06 +00:00
parent 887a22dabd
commit aa37e32471
11 changed files with 62 additions and 50 deletions

View File

@@ -433,13 +433,13 @@ where
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
let prev_events = prev_events
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
let state_key = state_key.map(ToOwned::to_owned);
PduEvent {

View File

@@ -669,8 +669,8 @@ async fn auth_event_in_different_room() {
content: to_raw_json_value(&json!({ "users": { alice(): 100 } })).unwrap(),
redacts: None,
unsigned: None,
auth_events: vec![event_id("CREATE"), event_id("IMA")],
prev_events: vec![event_id("IMA")],
auth_events: vec![event_id("CREATE"), event_id("IMA")].into(),
prev_events: vec![event_id("IMA")].into(),
depth: uint!(0),
hashes: EventHash::default(),
signatures: None,
@@ -807,8 +807,8 @@ async fn rejected_auth_event() {
content: to_raw_json_value(&json!({ "users": { alice(): 100 } })).unwrap(),
redacts: None,
unsigned: None,
auth_events: vec![event_id("CREATE"), event_id("IMA")],
prev_events: vec![event_id("IMA")],
auth_events: vec![event_id("CREATE"), event_id("IMA")].into(),
prev_events: vec![event_id("IMA")].into(),
depth: uint!(0),
hashes: EventHash::default(),
signatures: None,
@@ -893,12 +893,13 @@ async fn event_without_room_id() {
content: to_raw_json_value(&RoomMessageEventContent::text_plain("Hi!")).unwrap(),
redacts: None,
unsigned: None,
auth_events: vec![
auth_events: [
owned_event_id!("$CREATE"),
owned_event_id!("$IMA"),
owned_event_id!("$IPOWER"),
],
prev_events: vec![owned_event_id!("$IPOWER")],
]
.into(),
prev_events: [owned_event_id!("$IPOWER")].into(),
depth: uint!(0),
hashes: EventHash::default(),
signatures: None,

View File

@@ -163,7 +163,7 @@ async fn topic_basic() {
.finish(),
);
let events = &[
let events = vec![
to_init_pdu_event(
"T1",
alice(),
@@ -219,7 +219,7 @@ async fn topic_basic() {
.map(event_id)
.collect::<Vec<_>>();
do_check(events, edges, expected_state_ids).await;
do_check(&events, edges, expected_state_ids).await;
}
#[tokio::test]

View File

@@ -428,13 +428,13 @@ pub(super) fn to_init_pdu_event(
content: Box<RawJsonValue>,
) -> PduEvent {
let ts = SERVER_TIMESTAMP.fetch_add(1, SeqCst);
let state_key = state_key.map(ToOwned::to_owned);
let id = if id.contains('$') {
id.to_owned()
} else {
format!("${id}:foo")
};
let state_key = state_key.map(ToOwned::to_owned);
PduEvent {
event_id: id.try_into().unwrap(),
room_id: room_id().to_owned(),
@@ -446,8 +446,8 @@ pub(super) fn to_init_pdu_event(
content,
redacts: None,
unsigned: None,
auth_events: vec![],
prev_events: vec![],
auth_events: Default::default(),
prev_events: Default::default(),
depth: uint!(0),
hashes: EventHash::default(),
signatures: None,
@@ -468,6 +468,7 @@ where
S: AsRef<str>,
{
let ts = SERVER_TIMESTAMP.fetch_add(1, SeqCst);
let state_key = state_key.map(ToOwned::to_owned);
let id = if id.contains('$') {
id.to_owned()
} else {
@@ -477,14 +478,13 @@ where
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
let prev_events = prev_events
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
let state_key = state_key.map(ToOwned::to_owned);
PduEvent {
event_id: id.try_into().unwrap(),
room_id: room_id().to_owned(),
@@ -528,18 +528,18 @@ where
}
let ts = SERVER_TIMESTAMP.fetch_add(1, SeqCst);
let state_key = state_key.map(ToOwned::to_owned);
let auth_events = auth_events
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
let prev_events = prev_events
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
let state_key = state_key.map(ToOwned::to_owned);
PduEvent {
event_id: event_id(id),
room_id: hydra_room_id().to_owned(),
@@ -581,12 +581,12 @@ where
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
let prev_events = prev_events
.iter()
.map(AsRef::as_ref)
.map(event_id)
.collect::<Vec<_>>();
.collect();
PduEvent {
event_id: id.try_into().unwrap(),
@@ -636,8 +636,8 @@ pub(super) fn room_create_hydra_pdu_event(
content,
redacts: None,
unsigned: None,
auth_events: vec![],
prev_events: vec![],
auth_events: Default::default(),
prev_events: Default::default(),
depth: uint!(0),
hashes: EventHash::default(),
signatures: None,