From 7331909e7767509b27877d99adff1de44b41f8fb Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Wed, 16 Oct 2019 19:13:16 +0200 Subject: Reverse date partitions later Make partition_days() more like partition(). --- src/lib.rs | 5 ++--- src/main.rs | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 8108634..10b4ab9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -87,8 +87,8 @@ mod tests { d(2019, 09, 01), d(2019, 09, 02), d(2019, 09, 03), d(2019, 09, 04)]; let outs = list![list![d(2019, 09, 04)], - list![d(2019, 09, 02), d(2019, 09, 03)], - list![d(2019, 08, 30), d(2019, 08, 31), d(2019, 09, 01)]]; + list![d(2019, 09, 03), d(2019, 09, 02)], + list![d(2019, 09, 01), d(2019, 08, 31), d(2019, 08, 30)]]; assert_eq!(partition_days(&exp2, &ins), outs); } @@ -138,7 +138,6 @@ pub fn partition_days( .map(|l| { l.into_iter() .map(|d| day1 - Duration::days(d)) - .rev() .collect() }) .collect(); diff --git a/src/main.rs b/src/main.rs index 752204c..781018f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,7 @@ use std::process::exit; use chrono::NaiveDate; use docopt::Docopt; use serde::Deserialize; +use std::collections::LinkedList; mod lib; use lib::partition_days; @@ -40,7 +41,11 @@ fn main() { .and_then(|d| d.deserialize()) .unwrap_or_else(|e| e.exit()); - let parts = partition_days(&|n| exponent(args.flag_base, n), &args.arg_day); + let parts: LinkedList> = + partition_days(&|n| exponent(args.flag_base, n), &args.arg_day) + .into_iter() + .map(|l| l.into_iter().rev().collect()) + .collect(); if args.flag_keep { for days in parts.iter() { -- cgit v1.2.3