to_trans/
utils.rs

1use std::fs::File;
2use std::io::{self, Read};
3use std::path::PathBuf;
4
5use crate::errors::*;
6use crate::gene::GeneModel;
7
8use rayon::prelude::*;
9
10pub fn parallel_parse<'a>(s: &'a str, opt: &str) -> Result<Vec<GeneModel>> {
11    let records = s
12        .par_lines()
13        .filter(|line| !line.starts_with("#"))
14        .map(|line| GeneModel::parse(line, opt))
15        .collect::<Vec<GeneModel>>();
16
17    return Ok(records);
18}
19
20pub fn reader(file: &PathBuf) -> io::Result<String> {
21    let mut file = File::open(file)?;
22    let mut contents = String::new();
23    file.read_to_string(&mut contents)?;
24    Ok(contents)
25}