Function seqkmer::parallel::buffer_read_parallel
source · pub fn buffer_read_parallel<R, D, W, O, F, Out>(
reader: &mut R,
n_threads: usize,
buffer_size: usize,
work: W,
func: F,
) -> Result<()>Expand description
Performs parallel reading and processing of buffered data.
§Examples
use seqkmer::{buffer_read_parallel, FastaReader};
use std::path::Path;
use std::fs::File;
let path = Path::new("tests/data/test.fasta");
let mut file = File::open(path)?;
let work = |data: Vec<u8>| {
// Process data
data.len()
};
let func = |result: &mut seqkmer::ParallelResult<usize>| {
let mut total = 0;
while let Some(count) = result.next() {
total += count.unwrap();
}
total
};
let _ = buffer_read_parallel(&mut file, 4, 1024, work, func)?;