From 44e138d39ed6062f10339d32b856379d881cc40a Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 10 Oct 2024 13:00:56 -0400 Subject: [PATCH] added autopsy option --- src/directory.rs | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/src/directory.rs b/src/directory.rs index 6365cd4..6aae855 100644 --- a/src/directory.rs +++ b/src/directory.rs @@ -205,35 +205,19 @@ impl Directory { let selected_subtree = self.subtree_indices(self.selection()); let sibling_subtree = self.subtree_indices(index); - let delta = if selected_subtree.len() < sibling_subtree.len() { - let select_len = selected_subtree.len(); - let sibling_len = sibling_subtree.len(); + let select_len = selected_subtree.len(); + let sibling_len = sibling_subtree.len(); - let selected_copy = self.dirs[selected_subtree].to_owned(); - let sibling_copy = self.dirs[sibling_subtree].to_owned(); - let back_to_back = sibling_copy.into_iter().chain(selected_copy); + let selected_copy = self.dirs[selected_subtree].to_owned(); + let sibling_copy = self.dirs[sibling_subtree].to_owned(); + let back_to_back = sibling_copy.into_iter().chain(selected_copy); - let full_range = self.selection() .. self.selection()+select_len+sibling_len; - for (dst, item) in self.dirs[full_range].iter_mut().zip(back_to_back) { - *dst = item; - } - - sibling_len - } else if selected_subtree.len() == sibling_subtree.len() { - let (selected, sibling) = self.dirs.split_at_mut(index); - - let len = selected.len(); - let lhs = &mut selected[len - selected_subtree.len() .. ]; - let rhs = &mut sibling[0 .. sibling_subtree.len()]; - - lhs.swap_with_slice(rhs); - - selected_subtree.len() - } else { - todo!() - }; + let full_range = self.selection() .. self.selection()+select_len+sibling_len; + for (dst, item) in self.dirs[full_range].iter_mut().zip(back_to_back) { + *dst = item; + } - self.selection += u16::try_from(delta).unwrap_or(u16::MAX); + self.selection += u16::try_from(sibling_len).unwrap_or(u16::MAX); } fn selected(&self) -> &Item {