track_core/task_sort.rs
1use crate::types::Task;
2
3pub fn sort_tasks(tasks: &[Task]) -> Vec<Task> {
4 let mut sorted = tasks.to_vec();
5 sorted.sort_by(|left, right| {
6 left.status
7 .cmp(&right.status)
8 .then_with(|| left.priority.cmp(&right.priority))
9 .then_with(|| right.created_at.cmp(&left.created_at))
10 });
11 sorted
12}