|
5 | 5 | use std::collections::{HashMap, HashSet};
|
6 | 6 | use std::fmt;
|
7 | 7 | use std::io::{self, ErrorKind as IOErrorKind, Read};
|
8 |
| -use std::iter::FromIterator; |
9 | 8 | use std::mem;
|
10 | 9 | use std::path::{Path, PathBuf};
|
11 | 10 |
|
@@ -273,7 +272,7 @@ fn trigger_children(
|
273 | 272 | .or_insert_with(|| unreachable!());
|
274 | 273 | result += pending.len();
|
275 | 274 | for pending_item in pending.into_iter() {
|
276 |
| - for mut item in Vec::from_iter(io_executor.execute(pending_item)) { |
| 275 | + for mut item in io_executor.execute(pending_item).collect::<Vec<_>>() { |
277 | 276 | // TODO capture metrics
|
278 | 277 | budget.reclaim(&item);
|
279 | 278 | filter_result(&mut item).chain_err(|| ErrorKind::ExtractingPackage)?;
|
@@ -319,11 +318,11 @@ fn unpack_without_first_dir<'a, R: Read>(
|
319 | 318 | // drain completed results to keep memory pressure low and respond
|
320 | 319 | // rapidly to completed events even if we couldn't submit work (because
|
321 | 320 | // our unpacked item is pending dequeue)
|
322 |
| - for mut item in Vec::from_iter(io_executor.completed()) { |
| 321 | + for mut item in io_executor.completed().collect::<Vec<_>>() { |
323 | 322 | // TODO capture metrics
|
324 | 323 | budget.reclaim(&item);
|
325 | 324 | filter_result(&mut item).chain_err(|| ErrorKind::ExtractingPackage)?;
|
326 |
| - trigger_children(&mut *io_executor, &mut directories, &mut budget, item)?; |
| 325 | + trigger_children(&*io_executor, &mut directories, &mut budget, item)?; |
327 | 326 | }
|
328 | 327 |
|
329 | 328 | let mut entry = entry.chain_err(|| ErrorKind::ExtractingPackage)?;
|
@@ -369,7 +368,7 @@ fn unpack_without_first_dir<'a, R: Read>(
|
369 | 368 | io_executor: &dyn Executor,
|
370 | 369 | mut directories: &mut HashMap<PathBuf, DirStatus>,
|
371 | 370 | ) -> Result<()> {
|
372 |
| - for mut item in Vec::from_iter(io_executor.completed()) { |
| 371 | + for mut item in io_executor.completed().collect::<Vec<_>>() { |
373 | 372 | // TODO capture metrics
|
374 | 373 | budget.reclaim(&item);
|
375 | 374 | filter_result(&mut item).chain_err(|| ErrorKind::ExtractingPackage)?;
|
@@ -457,22 +456,22 @@ fn unpack_without_first_dir<'a, R: Read>(
|
457 | 456 | }
|
458 | 457 | };
|
459 | 458 |
|
460 |
| - for mut item in Vec::from_iter(io_executor.execute(item)) { |
| 459 | + for mut item in io_executor.execute(item).collect::<Vec<_>>() { |
461 | 460 | // TODO capture metrics
|
462 | 461 | budget.reclaim(&item);
|
463 | 462 | filter_result(&mut item).chain_err(|| ErrorKind::ExtractingPackage)?;
|
464 |
| - trigger_children(&mut *io_executor, &mut directories, &mut budget, item)?; |
| 463 | + trigger_children(&*io_executor, &mut directories, &mut budget, item)?; |
465 | 464 | }
|
466 | 465 | }
|
467 | 466 |
|
468 | 467 | loop {
|
469 | 468 | let mut triggered = 0;
|
470 |
| - for mut item in Vec::from_iter(io_executor.join()) { |
| 469 | + for mut item in io_executor.join().collect::<Vec<_>>() { |
471 | 470 | // handle final IOs
|
472 | 471 | // TODO capture metrics
|
473 | 472 | budget.reclaim(&item);
|
474 | 473 | filter_result(&mut item).chain_err(|| ErrorKind::ExtractingPackage)?;
|
475 |
| - triggered += trigger_children(&mut *io_executor, &mut directories, &mut budget, item)?; |
| 474 | + triggered += trigger_children(&*io_executor, &mut directories, &mut budget, item)?; |
476 | 475 | }
|
477 | 476 | if triggered == 0 {
|
478 | 477 | // None of the IO submitted before the prior join triggered any new
|
|
0 commit comments