async fn gather_user_metadata(
services: &Services,
sender_user: &UserId,
sender_device: Option<&DeviceId>,
room_id: &RoomId,
filter: &FilterDefinition,
timeline_pdus: &[(PduCount, PduEvent)],
receipt_events: &[(OwnedUserId, Raw<AnySyncEphemeralRoomEvent>)],
since: u64,
initial: bool,
timeline_changed: bool,
encrypted_room: Option<bool>,
since_shortstatehash: Option<ShortStateHash>,
) -> UserMetadata