can add, add past, add future
This commit is contained in:
@@ -11,7 +11,7 @@ fn main() {
|
||||
files.reconcile().expect("failed to reconcile");
|
||||
|
||||
if let Some(add) = flags.add {
|
||||
let task = match flags.add_schedule {
|
||||
let task = match flags.add_schedule.clone() {
|
||||
None => Task(serde_yaml::Value::String(add)),
|
||||
Some(add_schedule) => {
|
||||
let mut m = serde_yaml::Mapping::new();
|
||||
@@ -20,10 +20,11 @@ fn main() {
|
||||
Task(serde_yaml::Value::Mapping(m))
|
||||
}
|
||||
};
|
||||
let now = Delta::now_time();
|
||||
files.files[0]
|
||||
.append(match task.next_due(Delta::now_time()) {
|
||||
.append(match task.next_due(now.clone()) {
|
||||
None => Delta::add(task),
|
||||
Some(due) => Delta::add_at(task, due),
|
||||
Some(due) => Delta::add_at(task, if due > now { due } else { now }),
|
||||
})
|
||||
.expect("failed to add");
|
||||
|
||||
@@ -612,10 +613,14 @@ impl Task {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn must_next_due(&self, after: u64) -> u64 {
|
||||
self.next_due(after).unwrap_or(1)
|
||||
}
|
||||
|
||||
pub fn next_due(&self, after: u64) -> Option<u64> {
|
||||
match self.schedule() {
|
||||
Some(schedule) => self.parse_schedule_next(schedule, after),
|
||||
None => Some(1),
|
||||
None => None,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -693,7 +698,7 @@ mod test_task {
|
||||
fn test_unscheduled() {
|
||||
let task = Task(serde_yaml::Value::String("hello world".to_string()));
|
||||
assert_eq!(None, task.schedule());
|
||||
assert_eq!(Some(1 as u64), task.next_due(100));
|
||||
assert_eq!(1 as u64, task.must_next_due(100));
|
||||
assert!(task._due(100));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user