Skip to content

Commit

Permalink
Slightly optimize how we do sorts for processes
Browse files Browse the repository at this point in the history
  • Loading branch information
ClementTsang committed Dec 10, 2020
1 parent 1f466b7 commit fd32672
Showing 1 changed file with 17 additions and 24 deletions.
41 changes: 17 additions & 24 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -447,9 +447,7 @@ fn update_final_process_list(app: &mut App, widget_id: u64) {
fn sort_process_data(
to_sort_vec: &mut Vec<ConvertedProcessData>, proc_widget_state: &app::ProcWidgetState,
) {
to_sort_vec.sort_by(|a, b| {
utils::gen_util::get_ordering(&a.name.to_lowercase(), &b.name.to_lowercase(), false)
});
to_sort_vec.sort_by_cached_key(|c| c.name.to_lowercase());

match &proc_widget_state.process_sorting_type {
ProcessSorting::CpuPercent => {
Expand Down Expand Up @@ -482,22 +480,18 @@ fn sort_process_data(
ProcessSorting::ProcessName => {
// Don't repeat if false... it sorts by name by default anyways.
if proc_widget_state.is_process_sort_descending {
to_sort_vec.sort_by(|a, b| {
utils::gen_util::get_ordering(
&a.name.to_lowercase(),
&b.name.to_lowercase(),
proc_widget_state.is_process_sort_descending,
)
})
to_sort_vec.sort_by_cached_key(|c| c.name.to_lowercase());
if proc_widget_state.is_process_sort_descending {
to_sort_vec.reverse();
}
}
}
ProcessSorting::Command => {
to_sort_vec.sort_by_cached_key(|c| c.command.to_lowercase());
if proc_widget_state.is_process_sort_descending {
to_sort_vec.reverse();
}
}
ProcessSorting::Command => to_sort_vec.sort_by(|a, b| {
utils::gen_util::get_ordering(
&a.command.to_lowercase(),
&b.command.to_lowercase(),
proc_widget_state.is_process_sort_descending,
)
}),
ProcessSorting::Pid => {
if !proc_widget_state.is_grouped {
to_sort_vec.sort_by(|a, b| {
Expand Down Expand Up @@ -545,13 +539,12 @@ fn sort_process_data(
)
});
}
ProcessSorting::State => to_sort_vec.sort_by(|a, b| {
utils::gen_util::get_ordering(
&a.process_state.to_lowercase(),
&b.process_state.to_lowercase(),
proc_widget_state.is_process_sort_descending,
)
}),
ProcessSorting::State => {
to_sort_vec.sort_by_cached_key(|c| c.process_state.to_lowercase());
if proc_widget_state.is_process_sort_descending {
to_sort_vec.reverse();
}
}
ProcessSorting::Count => {
if proc_widget_state.is_grouped {
to_sort_vec.sort_by(|a, b| {
Expand Down

0 comments on commit fd32672

Please sign in to comment.