services/sending: avoid unnecessary clone

This commit is contained in:
Lambda 2025-02-09 17:51:12 +00:00 committed by Charles Hall
parent ed12b0bf67
commit d9c7fbbd82
No known key found for this signature in database
GPG key ID: 7B8E0645816E07CF
3 changed files with 6 additions and 9 deletions

View file

@ -55,7 +55,7 @@ impl service::sending::Data for KeyValueDatabase {
fn queue_requests( fn queue_requests(
&self, &self,
requests: &[(&Destination, SendingEventType)], requests: &[(&Destination, &SendingEventType)],
) -> Result<Vec<RequestKey>> { ) -> Result<Vec<RequestKey>> {
let mut batch = Vec::new(); let mut batch = Vec::new();
let mut keys = Vec::new(); let mut keys = Vec::new();

View file

@ -576,8 +576,7 @@ impl Service {
) -> Result<()> { ) -> Result<()> {
let destination = Destination::Push(user.to_owned(), pushkey); let destination = Destination::Push(user.to_owned(), pushkey);
let event_type = SendingEventType::Pdu(pdu_id.to_owned()); let event_type = SendingEventType::Pdu(pdu_id.to_owned());
let keys = let keys = self.db.queue_requests(&[(&destination, &event_type)])?;
self.db.queue_requests(&[(&destination, event_type.clone())])?;
self.sender self.sender
.send(RequestData { .send(RequestData {
destination, destination,
@ -606,7 +605,7 @@ impl Service {
}) })
.collect::<Vec<_>>(); .collect::<Vec<_>>();
let keys = self.db.queue_requests( let keys = self.db.queue_requests(
&requests.iter().map(|(o, e)| (o, e.clone())).collect::<Vec<_>>(), &requests.iter().map(|(o, e)| (o, e)).collect::<Vec<_>>(),
)?; )?;
for ((destination, event_type), key) in requests.into_iter().zip(keys) { for ((destination, event_type), key) in requests.into_iter().zip(keys) {
self.sender self.sender
@ -631,8 +630,7 @@ impl Service {
) -> Result<()> { ) -> Result<()> {
let destination = Destination::Normal(server.to_owned()); let destination = Destination::Normal(server.to_owned());
let event_type = SendingEventType::Edu(serialized); let event_type = SendingEventType::Edu(serialized);
let keys = let keys = self.db.queue_requests(&[(&destination, &event_type)])?;
self.db.queue_requests(&[(&destination, event_type.clone())])?;
self.sender self.sender
.send(RequestData { .send(RequestData {
destination, destination,
@ -653,8 +651,7 @@ impl Service {
) -> Result<()> { ) -> Result<()> {
let destination = Destination::Appservice(appservice_id); let destination = Destination::Appservice(appservice_id);
let event_type = SendingEventType::Pdu(pdu_id); let event_type = SendingEventType::Pdu(pdu_id);
let keys = let keys = self.db.queue_requests(&[(&destination, &event_type)])?;
self.db.queue_requests(&[(&destination, event_type.clone())])?;
self.sender self.sender
.send(RequestData { .send(RequestData {
destination, destination,

View file

@ -22,7 +22,7 @@ pub(crate) trait Data: Send + Sync {
) -> Result<()>; ) -> Result<()>;
fn queue_requests( fn queue_requests(
&self, &self,
requests: &[(&Destination, SendingEventType)], requests: &[(&Destination, &SendingEventType)],
) -> Result<Vec<RequestKey>>; ) -> Result<Vec<RequestKey>>;
fn queued_requests<'a>( fn queued_requests<'a>(
&'a self, &'a self,