summaryrefslogtreecommitdiffstats
path: root/cli/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/src/main.rs')
-rw-r--r--cli/src/main.rs15
1 files changed, 7 insertions, 8 deletions
diff --git a/cli/src/main.rs b/cli/src/main.rs
index 7e1b80f..43f13b3 100644
--- a/cli/src/main.rs
+++ b/cli/src/main.rs
@@ -154,18 +154,17 @@ fn main() {
}
}
-fn sort_by_func(sort: &SortTarget) -> Box<dyn FnMut(&&Transaction, &&Transaction) -> std::cmp::Ordering> {
+fn sort_by_func(sort: &SortTarget) -> impl FnMut(&&Transaction, &&Transaction) -> std::cmp::Ordering {
match sort {
- SortTarget::Amount => Box::new(|t1: &&Transaction, t2: &&Transaction| t1.amount.cmp(&t2.amount)),
- SortTarget::Date => Box::new(|t1: &&Transaction, t2: &&Transaction| t1.date.cmp(&t2.date)),
+ SortTarget::Amount => |t1: &&Transaction, t2: &&Transaction| t1.amount.cmp(&t2.amount),
+ SortTarget::Date => |t1: &&Transaction, t2: &&Transaction| t1.date.cmp(&t2.date),
}
}
-fn inner_sort_by<T>(
- v: &mut [T],
- mut outer_cmp: Box<dyn FnMut(&T, &T) -> std::cmp::Ordering>,
- mut inner_cmp: Box<dyn FnMut(&T, &T) -> std::cmp::Ordering>,
-) {
+fn inner_sort_by<T, F>(v: &mut [T], mut outer_cmp: F, mut inner_cmp: F)
+where
+ F: FnMut(&T, &T) -> std::cmp::Ordering,
+{
// Early out
if v.len() < 2 {
return;