Update a specific part within a message
(&mut self, msg_id: &str, part: MessagePart)
| 494 | |
| 495 | /// Update a specific part within a message |
| 496 | pub fn update_part(&mut self, msg_id: &str, part: MessagePart) -> Option<&MessagePart> { |
| 497 | let part_id = part.id.clone(); |
| 498 | let msg = self.get_message_mut(msg_id)?; |
| 499 | if let Some(pos) = msg.parts.iter().position(|p| p.id == part_id) { |
| 500 | msg.parts[pos] = part; |
| 501 | } else { |
| 502 | msg.parts.push(part); |
| 503 | } |
| 504 | self.touch(); |
| 505 | // Return reference to the part |
| 506 | let msg = self.get_message(msg_id)?; |
| 507 | msg.parts.iter().find(|p| p.id == part_id) |
| 508 | } |
| 509 | |
| 510 | /// Remove a specific part from a message |
| 511 | pub fn remove_part(&mut self, msg_id: &str, part_id: &str) -> Option<MessagePart> { |