fn special_extend<I, T>(pi: I, len: usize, v: &mut Vec<T>)
where
    I: ParallelIterator<Item = T>,
    T: Send,
{
    let mut collect = Collect::new(v, len);
    pi.drive_unindexed(collect.as_consumer());
    collect.complete();
}
/// Collects the results of the iterator into the specified vector.
///
/// Technically, this only works for `IndexedParallelIterator`, but we're faking a
/// bit of specialization here until Rust can do that natively.  Callers are
/// using `opt_len` to find the length before calling this, and only exact
/// iterators will return anything but `None` there.
///
/// Since the type system doesn't understand that contract, we have to allow
/// *any* `ParallelIterator` here, and `CollectConsumer` has to also implement
/// `UnindexedConsumer`.  That implementation panics `unreachable!` in case
/// there's a bug where we actually do try to use this unindexed.
Collects the results of the iterator into the specified vector.
Technically, this only works for `IndexedParallelIterator`, but we're faking a
bit of specialization here until Rust can do that natively.  Callers are
using `opt_len` to find the length before calling this, and only exact
iterators will return anything but `None` there.


Collects the results of the iterator into the specified vector . Technically this only works for ` IndexedParallelIterator ` but we ' re faking a bit of specialization here until Rust can do that natively . Callers are using ` opt_len ` to find the length before calling this and only exact iterators will return anything but ` None ` there .
fn special_extend<I, T>(pi: I, len: usize, v: &mut Vec<T>)
where
    I: ParallelIterator<Item = T>,
    T: Send,
{
    let mut collect = Collect::new(v, len);
    pi.drive_unindexed(collect.as_consumer());
    collect.complete();
}
fn special_extend < I , T > ( pi : I , len : usize , v : & mut Vec < T > ) where I : ParallelIterator < Item = T > , T : Send , { let mut collect = Collect :: new ( v , len ) ; pi . drive_unindexed ( collect . as_consumer ( ) ) ; collect . complete ( ) ; }
Collects the results of the iterator into the specified vector.
Collects the results of the iterator into the specified vector .
pi
I
len
usize
v
&mut Vec<T>