Sha256: ba105bf0853ebc45157f22116ad0f55d3bdab75e721d8e7a677c7b912d0c0c6d

Contents?: true

Size: 826 Bytes

Versions: 73

Compression:

Stored size: 826 Bytes

Contents

use alloc::collections::LinkedList;
use alloc::vec::Vec;

use rayon::iter::{IntoParallelIterator, ParallelIterator};

/// Helper for collecting parallel iterators to an intermediary
#[allow(clippy::linkedlist)] // yes, we need linked list here for efficient appending!
pub(super) fn collect<I: IntoParallelIterator>(iter: I) -> (LinkedList<Vec<I::Item>>, usize) {
    let list = iter
        .into_par_iter()
        .fold(Vec::new, |mut vec, elem| {
            vec.push(elem);
            vec
        })
        .map(|vec| {
            let mut list = LinkedList::new();
            list.push_back(vec);
            list
        })
        .reduce(LinkedList::new, |mut list1, mut list2| {
            list1.append(&mut list2);
            list1
        });

    let len = list.iter().map(Vec::len).sum();
    (list, len)
}

Version data entries

73 entries across 38 versions & 1 rubygems

Version Path
wasmtime-29.0.0 ./ext/cargo-vendor/hashbrown-0.15.2/src/external_trait_impls/rayon/helpers.rs
wasmtime-29.0.0 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-28.0.0 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-28.0.0 ./ext/cargo-vendor/hashbrown-0.15.2/src/external_trait_impls/rayon/helpers.rs
wasmtime-27.0.0 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-27.0.0 ./ext/cargo-vendor/hashbrown-0.15.1/src/external_trait_impls/rayon/helpers.rs
wasmtime-26.0.0 ./ext/cargo-vendor/hashbrown-0.15.0/src/external_trait_impls/rayon/helpers.rs
wasmtime-26.0.0 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-25.0.2 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-25.0.1 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-25.0.0 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-24.0.0 ./ext/cargo-vendor/hashbrown-0.14.5/src/external_trait_impls/rayon/helpers.rs
wasmtime-24.0.0 ./ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/helpers.rs
wasmtime-23.0.2 ./ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/helpers.rs
wasmtime-23.0.2 ./ext/cargo-vendor/hashbrown-0.14.3/src/external_trait_impls/rayon/helpers.rs
wasmtime-22.0.0 ./ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/helpers.rs
wasmtime-22.0.0 ./ext/cargo-vendor/hashbrown-0.14.3/src/external_trait_impls/rayon/helpers.rs
wasmtime-21.0.1 ./ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/helpers.rs
wasmtime-21.0.1 ./ext/cargo-vendor/hashbrown-0.14.3/src/external_trait_impls/rayon/helpers.rs
wasmtime-20.0.2 ./ext/cargo-vendor/hashbrown-0.14.3/src/external_trait_impls/rayon/helpers.rs