From d8782fa28ace30ef7e445bcff97a537e3662626d Mon Sep 17 00:00:00 2001 From: Joscha Date: Sat, 4 Dec 2021 19:55:47 +0100 Subject: [PATCH] Remove EntryMap --- src/eval/entry.rs | 48 +++-------------------------------------------- 1 file changed, 3 insertions(+), 45 deletions(-) diff --git a/src/eval/entry.rs b/src/eval/entry.rs index f08c566..47d7c8b 100644 --- a/src/eval/entry.rs +++ b/src/eval/entry.rs @@ -1,5 +1,3 @@ -use std::collections::HashMap; - use chrono::NaiveDate; use crate::files::commands::DoneDate; @@ -15,6 +13,7 @@ pub enum EntryKind { Birthday, } +/// A single instance of a command. #[derive(Debug)] pub struct Entry { pub kind: EntryKind, @@ -111,49 +110,8 @@ impl Entries { self.entries.push(entry); } } -} -pub struct EntryMap { - pub range: DateRange, - map: HashMap>, - undated: Vec, -} - -impl EntryMap { - pub fn new(range: DateRange) -> Self { - Self { - range, - map: HashMap::new(), - undated: vec![], - } - } - - pub fn block(&mut self, date: NaiveDate) { - if self.range.contains(date) { - self.map.entry(date).or_insert(None); - } - } - - pub fn insert(&mut self, entry: Entry) { - if let Some(date) = entry.root { - let date = date.root(); - if self.range.contains(date) { - self.map.entry(date).or_insert(Some(entry)); - } else if let EntryKind::TaskDone(done_date) = entry.kind { - if self.range.contains(done_date) { - self.map.entry(date).or_insert(Some(entry)); - } - } - } else { - self.undated.push(entry); - } - } - - pub fn drain(&mut self) -> Vec { - self.map - .drain() - .filter_map(|(_, entry)| entry) - .chain(self.undated.drain(..)) - .collect() + pub fn entries(self) -> Vec { + self.entries } }