0.1.3 |
|
---|---|
0.1.2 |
|
0.1.1 |
|
#14 in #gtf
13KB
308 代码行
nom-gtf
使用nom构建的gtf解析器。
这实现了接近 wc -l
的吞吐量。
用法
这意味着它应该用作迭代器,并接收任何实现 BufRead
的项目。
从文件中读取
use std::{fs::File, io::BufReader};
use nom_gtf::GtfReader;
let handle = File::open("data/example.gtf")
.map(BufReader::new)
.unwrap();
let num_records = GtfReader::from_bufread(handle)
.filter_map(|x| x.ok())
.count();
assert_eq!(num_records, 10);
从Gzip文件中读取
use std::{fs::File, io::BufReader};
use flate2::read::MultiGzDecoder;
use nom_gtf::GtfReader;
let handle = File::open("data/example.gtf.gz")
.map(MultiGzDecoder::new)
.map(BufReader::new)
.unwrap();
let num_records = GtfReader::from_bufread(handle)
.filter_map(|x| x.ok())
.count();
assert_eq!(num_records, 10);
依赖关系
~1.5MB
~26K SLoC