fix(message-list): improve idioms (avoid redundant clone, extend labels, safer message extraction)

This commit is contained in:
Jeremiah Russell
2025-10-20 07:38:19 +01:00
committed by Jeremiah Russell
parent 12344c123e
commit d0b1391738

View File

@@ -372,9 +372,7 @@ impl MessageList for GmailClient {
/// Add label to the labels collection
fn add_labels_ids(&mut self, label_ids: &[String]) {
if !label_ids.is_empty() {
for id in label_ids {
self.label_ids.push(id.to_string())
}
self.label_ids.extend(label_ids.iter().cloned());
}
}
@@ -390,11 +388,7 @@ impl MessageList for GmailClient {
/// Get a reference to the message_ids
fn message_ids(&self) -> Vec<String> {
self.messages
.iter()
.map(|m| m.id().to_string())
.collect::<Vec<_>>()
.clone()
self.messages.iter().map(|m| m.id().to_string()).collect()
}
/// Get a reference to the message_ids
@@ -479,14 +473,13 @@ impl MessageList for GmailClient {
return Ok(list);
}
let mut list_ids = list
.clone()
.messages
.unwrap()
.iter()
.flat_map(|item| item.id.as_ref().map(|id| MessageSummary::new(id)))
.collect();
self.messages.append(&mut list_ids);
if let Some(msgs) = &list.messages {
let mut list_ids: Vec<MessageSummary> = msgs
.iter()
.flat_map(|item| item.id.as_deref().map(MessageSummary::new))
.collect();
self.messages.append(&mut list_ids);
}
Ok(list)
}