gtftools 0.1.9

A barebones GTF toolkit with fast nom-based IO
Documentation
use criterion::{criterion_group, criterion_main, Criterion};
use gtftools::{GtfRecord, GtfRecordRef};

pub fn benchmark_gtf_record_ref(c: &mut Criterion) {
    let line: &[u8] = br#"1	ensembl_havana	gene	1471765	1497848	.	+	.	gene_id "ENSG00000160072"; gene_version "20"; gene_name "ATAD3B"; gene_source "ensembl_havana"; gene_biotype "protein_coding";"#;
    c.bench_function("gtf_record_ref", |b| {
        b.iter(|| GtfRecordRef::from_bytes(&line).unwrap())
    });
}

pub fn benchmark_gtf_record(c: &mut Criterion) {
    let line: &[u8] = br#"1	ensembl_havana	gene	1471765	1497848	.	+	.	gene_id "ENSG00000160072"; gene_version "20"; gene_name "ATAD3B"; gene_source "ensembl_havana"; gene_biotype "protein_coding";"#;
    c.bench_function("gtf_record_owned", |b| {
        b.iter(|| GtfRecord::from_bytes(&line).unwrap())
    });
}

criterion_group!(benches, benchmark_gtf_record, benchmark_gtf_record_ref);
criterion_main!(benches);