matrix_sdk_test/sync_builder/
bulk.rs1use std::ops::Range;
2
3use ruma::{
4 events::{room::member::MembershipState, AnySyncStateEvent},
5 serde::Raw,
6};
7use serde_json::{from_value as from_json_value, json};
8
9pub fn bulk_room_members<'a>(
22 batch: usize,
23 range: Range<usize>,
24 server: &'a str,
25 membership: &'a MembershipState,
26) -> impl Iterator<Item = Raw<AnySyncStateEvent>> + 'a {
27 range.map(move |idx| {
28 let user_id = format!("@user_{idx}:{server}");
29 let event_id = format!("$roommember_{batch}_{idx}");
30 let ts = 151800000 + batch * 100 + idx;
31 from_json_value(json!({
32 "content": {
33 "membership": membership,
34 },
35 "event_id": event_id,
36 "origin_server_ts": ts,
37 "sender": user_id,
38 "state_key": user_id,
39 "type": "m.room.member",
40 }))
41 .unwrap()
42 })
43}