mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
parent
ca1b7da9bf
commit
45d3e38c63
8 changed files with 78 additions and 78 deletions
|
@ -125,18 +125,18 @@ pub(super) fn filtered_tasks(
|
|||
let task = match id {
|
||||
TaskId::WorkingSetId(id) => replica.get_working_set_task(*id)?,
|
||||
TaskId::PartialUuid(_) => unreachable!(), // not present in absolute id list
|
||||
TaskId::Uuid(id) => replica.get_task(id)?,
|
||||
TaskId::Uuid(id) => replica.get_task(*id)?,
|
||||
};
|
||||
|
||||
if let Some(task) = task {
|
||||
// if we have already seen this task, skip ahead..
|
||||
let uuid = *task.get_uuid();
|
||||
let uuid = task.get_uuid();
|
||||
if seen.contains(&uuid) {
|
||||
continue;
|
||||
}
|
||||
seen.insert(uuid);
|
||||
|
||||
let working_set_id = replica.get_working_set_index(&uuid)?;
|
||||
let working_set_id = replica.get_working_set_index(uuid)?;
|
||||
|
||||
if match_task(filter, &task, uuid, working_set_id) {
|
||||
res.push(task);
|
||||
|
@ -150,7 +150,7 @@ pub(super) fn filtered_tasks(
|
|||
log::debug!("Scanning all tasks in the task database");
|
||||
for (uuid, task) in replica.all_tasks()?.drain() {
|
||||
// Yikes, slow! https://github.com/djmitche/taskchampion/issues/108
|
||||
let working_set_id = replica.get_working_set_index(&uuid)?;
|
||||
let working_set_id = replica.get_working_set_index(uuid)?;
|
||||
if match_task(filter, &task, uuid, working_set_id) {
|
||||
res.push(task);
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ pub(super) fn filtered_tasks(
|
|||
log::debug!("Scanning only the working set (pending tasks)");
|
||||
for (i, task) in replica.working_set()?.drain(..).enumerate() {
|
||||
if let Some(task) = task {
|
||||
let uuid = *task.get_uuid();
|
||||
let uuid = task.get_uuid();
|
||||
if match_task(filter, &task, uuid, Some(i)) {
|
||||
res.push(task);
|
||||
}
|
||||
|
@ -186,13 +186,13 @@ mod test {
|
|||
let _t = replica.new_task(Status::Pending, s!("C")).unwrap();
|
||||
replica.rebuild_working_set(true).unwrap();
|
||||
|
||||
let t1uuid = *t1.get_uuid();
|
||||
let t1uuid = t1.get_uuid();
|
||||
|
||||
let filter = Filter {
|
||||
conditions: vec![Condition::IdList(vec![
|
||||
TaskId::Uuid(t1uuid), // A
|
||||
TaskId::WorkingSetId(1), // A (again, dups filtered)
|
||||
TaskId::Uuid(*t2.get_uuid()), // B
|
||||
TaskId::Uuid(t1uuid), // A
|
||||
TaskId::WorkingSetId(1), // A (again, dups filtered)
|
||||
TaskId::Uuid(t2.get_uuid()), // B
|
||||
])],
|
||||
};
|
||||
let mut filtered: Vec<_> = filtered_tasks(&mut replica, &filter)
|
||||
|
@ -212,7 +212,7 @@ mod test {
|
|||
let _t = replica.new_task(Status::Pending, s!("C")).unwrap();
|
||||
replica.rebuild_working_set(true).unwrap();
|
||||
|
||||
let t1uuid = *t1.get_uuid();
|
||||
let t1uuid = t1.get_uuid();
|
||||
let t2uuid = t2.get_uuid().to_string();
|
||||
let t2partial = t2uuid[..13].to_owned();
|
||||
|
||||
|
|
|
@ -18,15 +18,15 @@ impl WorkingSet {
|
|||
Ok(Self(
|
||||
working_set
|
||||
.iter()
|
||||
.map(|opt| opt.as_ref().map(|t| *t.get_uuid()))
|
||||
.map(|opt| opt.as_ref().map(|t| t.get_uuid()))
|
||||
.collect(),
|
||||
))
|
||||
}
|
||||
|
||||
fn index(&self, target: &Uuid) -> Option<usize> {
|
||||
fn index(&self, target: Uuid) -> Option<usize> {
|
||||
for (i, uuid) in self.0.iter().enumerate() {
|
||||
if let Some(uuid) = uuid {
|
||||
if uuid == target {
|
||||
if *uuid == target {
|
||||
return Some(i);
|
||||
}
|
||||
}
|
||||
|
@ -51,10 +51,10 @@ fn sort_tasks(tasks: &mut Vec<Task>, report: &Report, working_set: &WorkingSet)
|
|||
(Some(a_id), Some(b_id)) => a_id.cmp(&b_id),
|
||||
(Some(_), None) => Ordering::Less,
|
||||
(None, Some(_)) => Ordering::Greater,
|
||||
(None, None) => a_uuid.cmp(b_uuid),
|
||||
(None, None) => a_uuid.cmp(&b_uuid),
|
||||
}
|
||||
}
|
||||
SortBy::Uuid => a.get_uuid().cmp(b.get_uuid()),
|
||||
SortBy::Uuid => a.get_uuid().cmp(&b.get_uuid()),
|
||||
SortBy::Description => a.get_description().cmp(b.get_description()),
|
||||
};
|
||||
// If this sort property is equal, go on to the next..
|
||||
|
@ -165,7 +165,7 @@ mod test {
|
|||
|
||||
replica.rebuild_working_set(true).unwrap();
|
||||
|
||||
[*t1.get_uuid(), *t2.get_uuid(), *t3.get_uuid()]
|
||||
[t1.get_uuid(), t2.get_uuid(), t3.get_uuid()]
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -237,7 +237,7 @@ mod test {
|
|||
|
||||
let mut tasks: Vec<_> = replica.all_tasks().unwrap().values().cloned().collect();
|
||||
sort_tasks(&mut tasks, &report, &working_set);
|
||||
let got_uuids: Vec<_> = tasks.iter().map(|t| *t.get_uuid()).collect();
|
||||
let got_uuids: Vec<_> = tasks.iter().map(|t| t.get_uuid()).collect();
|
||||
let mut exp_uuids = uuids.to_vec();
|
||||
exp_uuids.sort();
|
||||
assert_eq!(got_uuids, exp_uuids);
|
||||
|
@ -291,7 +291,7 @@ mod test {
|
|||
|
||||
// get the task that's not in the working set, which should show
|
||||
// a uuid for its id column
|
||||
let task = replica.get_task(&uuids[1]).unwrap().unwrap();
|
||||
let task = replica.get_task(uuids[1]).unwrap().unwrap();
|
||||
assert_eq!(
|
||||
task_column(&task, &column, &working_set),
|
||||
uuids[1].to_string()
|
||||
|
@ -323,7 +323,7 @@ mod test {
|
|||
|
||||
// make task A active
|
||||
replica
|
||||
.get_task(&uuids[0])
|
||||
.get_task(uuids[0])
|
||||
.unwrap()
|
||||
.unwrap()
|
||||
.into_mut(&mut replica)
|
||||
|
@ -363,7 +363,7 @@ mod test {
|
|||
|
||||
// add some tags to task A
|
||||
let mut t1 = replica
|
||||
.get_task(&uuids[0])
|
||||
.get_task(uuids[0])
|
||||
.unwrap()
|
||||
.unwrap()
|
||||
.into_mut(&mut replica);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue