diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 59a7a0d..06431e8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -54,7 +54,31 @@ fn command_generate(week: &str) { } fn command_validate() { - // TODO + let today = Local::now().date().naive_local(); + let paths = relevant_files_starting(&today); + let mut tasks: Vec<Task> = vec![]; + for path in paths { + for task in tasks_from_path(&path) { + if task.date >= today && task.start_time.is_some() && task.end_time.is_some() { + tasks.push(task); + } + } + } + tasks.sort_by(cmp_tasks); + let n_tasks = tasks.len(); + for i in 0..n_tasks { + let task_a = &tasks[i]; + for j in (i + 1)..n_tasks { + let task_b = &tasks[j]; + if tasks_overlap(task_a, task_b) { + println!("Overlap found: '{}' overlaps with '{}'", + task_a.raw.replace("\n", "").trim(), + task_b.raw.replace("\n", "").trim()); + } else { + break; + } + } + } } // https://doc.rust-lang.org/std/fs/struct.File.html |