summaryrefslogtreecommitdiffstats
path: root/src/util/sort.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/sort.rs')
-rw-r--r--src/util/sort.rs23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/util/sort.rs b/src/util/sort.rs
index d290895..892810b 100644
--- a/src/util/sort.rs
+++ b/src/util/sort.rs
@@ -43,6 +43,18 @@ pub struct SortOption {
impl SortOption {
pub fn compare_func(&self) -> impl Fn(&JoshutoDirEntry, &JoshutoDirEntry) -> cmp::Ordering {
+ let dir_cmp = if self.directories_first {
+ dir_first
+ } else {
+ dummy_dir_first
+ };
+
+ let rev_cmp = if self.reverse {
+ reverse_ordering
+ } else {
+ dummy_reverse
+ };
+
let base_cmp = match self.sort_method {
SortType::Natural => {
if self.case_sensitive {
@@ -61,17 +73,6 @@ impl SortOption {
SortType::Mtime => mtime_sort,
};
- let rev_cmp = if self.reverse {
- reverse_ordering
- } else {
- dummy_reverse
- };
- let dir_cmp = if self.directories_first {
- dir_first
- } else {
- dummy_dir_first
- };
-
move |f1, f2| dir_cmp(f1, f2).then_with(|| rev_cmp(base_cmp(f1, f2)))
}