commit 12b4c3fe2d09366f6602bf354cbe600e8092ca95
parent 91f66023c4893f402eaf3735a921e0ef5bee216c
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 2 Apr 2023 01:40:06 -0700
simplify code a lot and avoid even more clone
Diffstat:
1 file changed, 7 insertions(+), 16 deletions(-)
diff --git a/src/main.rs b/src/main.rs
@@ -647,38 +647,29 @@ impl LeChatPHPClient {
// Build messages vector. Tag deleted messages.
let mut old_msg_ptr = 0;
- let mut new_msg_ptr = 0;
- let mut i = 0;
- while old_msg_ptr < messages.len() || new_msg_ptr < new_messages.len() {
- if let Some(old_msg) = messages.get_mut(old_msg_ptr) {
- if let Some(new_msg) = new_messages.get(new_msg_ptr) {
+ for new_msg in new_messages.into_iter() {
+ loop {
+ if let Some(old_msg) = messages.get_mut(old_msg_ptr) {
let new_parsed_dt = parse_date(&new_msg.date);
let parsed_dt = parse_date(&old_msg.date);
if new_parsed_dt > parsed_dt {
- messages.insert(old_msg_ptr, new_msg.clone());
+ messages.insert(old_msg_ptr, new_msg);
old_msg_ptr += 1;
- new_msg_ptr += 1;
} else if new_parsed_dt == parsed_dt {
if old_msg.text != new_msg.text {
- messages.insert(old_msg_ptr, new_msg.clone());
+ messages.insert(old_msg_ptr, new_msg);
old_msg_ptr += 1;
}
- new_msg_ptr += 1;
old_msg_ptr += 1;
} else {
old_msg.deleted = true;
old_msg_ptr += 1;
+ continue;
}
} else {
+ messages.insert(old_msg_ptr, new_msg);
old_msg_ptr += 1;
}
- } else if let Some(new_msg) = new_messages.get(new_msg_ptr) {
- messages.insert(old_msg_ptr, new_msg.clone());
- old_msg_ptr += 1;
- new_msg_ptr += 1;
- }
- i += 1;
- if i > 2000 {
break;
}
}