Skip to content

Commit 2f953e7

Browse files
committed
Some more clippy fixes
1 parent dcb1f7a commit 2f953e7

File tree

5 files changed

+21
-32
lines changed

5 files changed

+21
-32
lines changed

crates/tako/src/internal/scheduler/batches.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,7 @@ pub(crate) fn create_task_batches(
5353
..
5454
} = core.split_mut();
5555

56-
let queues: Vec<_> = task_queues
57-
.iter()
58-
.filter_map(|q| (!q.is_empty()).then_some(q))
59-
.collect();
56+
let queues: Vec<_> = task_queues.iter().filter(|q| !q.is_empty()).collect();
6057
if queues.is_empty() {
6158
return Vec::new();
6259
}
@@ -212,9 +209,8 @@ fn prune_progressive<T>(vec: &mut Vec<T>, prefix_size: usize, size_limit: usize)
212209
}
213210

214211
// To prune in-place
215-
for i in 0..size_limit {
216-
let target_idx = indices[i];
217-
vec.swap(i, target_idx);
212+
for (i, target_idx) in indices.iter().enumerate().take(size_limit) {
213+
vec.swap(i, *target_idx);
218214
}
219215

220216
vec.truncate(size_limit);

crates/tako/src/internal/scheduler/query.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,7 @@ pub(crate) fn compute_new_worker_query(
3535
if query.partial {
3636
// If query is partial, add a fake maximal resources for resource that was not explicitly defined
3737
for name in resource_map.iter_names() {
38-
if resources
39-
.resources
40-
.iter()
41-
.find(|r| r.name == *name)
42-
.is_none()
43-
{
38+
if !resources.resources.iter().any(|r| r.name == *name) {
4439
resources.resources.push(ResourceDescriptorItem {
4540
name: name.to_string(),
4641
kind: ResourceDescriptorKind::Sum {

crates/tako/src/internal/scheduler/taskqueue.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ use std::collections::btree_map::{Entry, OccupiedEntry};
77
use std::collections::{BTreeMap, BTreeSet};
88

99
#[derive(Debug)]
10+
/// Do not allocate BTreeSet if there is just one task (per priority level)
11+
/// There may be a many tasks but each with different priority
1012
pub(crate) enum OneOrMoreTaskIds {
1113
One(TaskId),
12-
More(Box<BTreeSet<TaskId>>),
14+
More(BTreeSet<TaskId>),
1315
}
1416

1517
impl OneOrMoreTaskIds {
@@ -159,7 +161,7 @@ impl TaskQueue {
159161
let mut task_ids: BTreeSet<_> = Default::default();
160162
task_ids.insert(*t_id);
161163
task_ids.insert(task_id);
162-
e.insert(OneOrMoreTaskIds::More(Box::new(task_ids)));
164+
e.insert(OneOrMoreTaskIds::More(task_ids));
163165
}
164166
OneOrMoreTaskIds::More(tasks) => {
165167
tasks.insert(task_id);
@@ -174,16 +176,14 @@ impl TaskQueue {
174176
}
175177
match self.queue.entry(Reverse(priority)) {
176178
Entry::Vacant(e) => {
177-
e.insert(OneOrMoreTaskIds::More(Box::new(
178-
task_ids.iter().copied().collect(),
179-
)));
179+
e.insert(OneOrMoreTaskIds::More(task_ids.iter().copied().collect()));
180180
}
181181
Entry::Occupied(mut e) => match e.get_mut() {
182182
OneOrMoreTaskIds::One(t_id) => {
183183
let mut new_ids: BTreeSet<_> = Default::default();
184184
new_ids.insert(*t_id);
185185
new_ids.extend(task_ids.iter().copied());
186-
e.insert(OneOrMoreTaskIds::More(Box::new(new_ids)));
186+
e.insert(OneOrMoreTaskIds::More(new_ids));
187187
}
188188
OneOrMoreTaskIds::More(tasks) => {
189189
tasks.extend(task_ids.iter().copied());
@@ -355,9 +355,7 @@ impl TaskQueue {
355355
}
356356

357357
pub fn take_one(&mut self) -> Option<TaskId> {
358-
let Some(mut entry) = self.queue.first_entry() else {
359-
return None;
360-
};
358+
let mut entry = self.queue.first_entry()?;
361359
match entry.get_mut() {
362360
OneOrMoreTaskIds::One(x) => {
363361
let r = *x;

crates/tako/src/internal/server/workerload.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -132,16 +132,14 @@ impl WorkerResources {
132132
.unwrap_or(ResourceAmount::ZERO)
133133
.div(requested)
134134
.min(MAX_TASK_PER_WORKER) as u32
135+
} else if self
136+
.n_resources
137+
.get(e.resource_id)
138+
.is_none_or(|r| r.is_zero())
139+
{
140+
0
135141
} else {
136-
if self
137-
.n_resources
138-
.get(e.resource_id)
139-
.is_none_or(|r| r.is_zero())
140-
{
141-
0
142-
} else {
143-
1
144-
}
142+
1
145143
}
146144
})
147145
.min()

crates/tako/src/internal/solver/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,10 @@ impl LpSolver {
127127
"{}{}*{}",
128128
if i == 0 {
129129
""
130+
} else if *weight < 0.0 {
131+
" - "
130132
} else {
131-
if *weight < 0.0 { " - " } else { " + " }
133+
" + "
132134
},
133135
if *weight >= 0.0 || i == 0 {
134136
*weight

0 commit comments

Comments
 (0)