bhcli

"Strange's fork of n0tr1v's bhcli (onion)"
git clone https://git.dasho.dev/Strange/bhcli.git
Log | Files | Refs | README

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:
Msrc/main.rs | 23+++++++----------------
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; } }