diff options
Diffstat (limited to 'cli/src/main.rs')
| -rw-r--r-- | cli/src/main.rs | 15 |
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; |
