From 70cfdfceabafb0e17357dff6c2e0fe0ad6996d99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Sat, 31 Jul 2021 21:31:08 +0200 Subject: dyn -> impl --- cli/src/main.rs | 15 +++++++-------- 1 file 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 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( - v: &mut [T], - mut outer_cmp: Box std::cmp::Ordering>, - mut inner_cmp: Box std::cmp::Ordering>, -) { +fn inner_sort_by(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; -- cgit v1.2.1