added autopsy option

main
nick 2024-10-10 13:00:56 -04:00
parent 454b0e4b78
commit 44e138d39e
1 changed files with 10 additions and 26 deletions

View File

@ -205,35 +205,19 @@ impl Directory {
let selected_subtree = self.subtree_indices(self.selection()); let selected_subtree = self.subtree_indices(self.selection());
let sibling_subtree = self.subtree_indices(index); let sibling_subtree = self.subtree_indices(index);
let delta = if selected_subtree.len() < sibling_subtree.len() { let select_len = selected_subtree.len();
let select_len = selected_subtree.len(); let sibling_len = sibling_subtree.len();
let sibling_len = sibling_subtree.len();
let selected_copy = self.dirs[selected_subtree].to_owned(); let selected_copy = self.dirs[selected_subtree].to_owned();
let sibling_copy = self.dirs[sibling_subtree].to_owned(); let sibling_copy = self.dirs[sibling_subtree].to_owned();
let back_to_back = sibling_copy.into_iter().chain(selected_copy); let back_to_back = sibling_copy.into_iter().chain(selected_copy);
let full_range = self.selection() .. self.selection()+select_len+sibling_len; 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) { for (dst, item) in self.dirs[full_range].iter_mut().zip(back_to_back) {
*dst = item; *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!()
};
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 { fn selected(&self) -> &Item {