diff options
Diffstat (limited to 'karld/src/helper.rs')
-rw-r--r-- | karld/src/helper.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/karld/src/helper.rs b/karld/src/helper.rs index 2e601b0..f106df6 100644 --- a/karld/src/helper.rs +++ b/karld/src/helper.rs @@ -1,5 +1,5 @@ use crate::condition::{ConditionFind, Direction, Edge}; -use chrono::{NaiveDate, NaiveDateTime}; +use chrono::NaiveDateTime; use karlcommon::{Schedule, Task}; use std::{collections::HashMap, ops::Range}; @@ -34,9 +34,17 @@ impl DiscreteCacheTask { } pub fn find(&mut self, from: NaiveDateTime, dir: Direction) -> Range<Option<NaiveDateTime>> { - assert_eq!(dir, Direction::Forward); // TODO cache // if let Some(c) = self.cached {} + return self.find_uncached(from, dir); + } + + pub fn find_uncached( + &mut self, + from: NaiveDateTime, + dir: Direction, + ) -> Range<Option<NaiveDateTime>> { + assert_eq!(dir, Direction::Forward); // TODO undefined behaviour if dir is not forward (maybe it even works backward) match &self.inner.schedule { Schedule::Condition(o) => { let start = o.find(Edge::Start, dir, from); |