Documentation
#![feature(test)]
extern crate test;
use rmime::Mime;
use test::Bencher;

const N: usize = 2048;

#[bench]
fn reference(b: &mut Bencher) {
    b.iter(|| {
        let mut v = Vec::with_capacity(N);
        for _ in 0..N {
            let mime = Mime::new("text/plain").unwrap();
            v.push(mime);
        }
    });
}

#[bench]
fn from_owned(b: &mut Bencher) {
    b.iter(|| {
        let mut v = Vec::with_capacity(N);
        for _ in 0..N {
            let mime = Mime::new("text/plain".to_owned()).unwrap();
            v.push(mime);
        }
    });
}
#[bench]
fn from_owned_and_into(b: &mut Bencher) {
    b.iter(|| {
        let mut v = Vec::with_capacity(N);
        for _ in 0..N {
            let mime = Mime::new("text/plain".to_owned()).unwrap().into_owned();
            v.push(mime);
        }
    });
}

#[bench]
fn into_owned(b: &mut Bencher) {
    b.iter(|| {
        let mut v = Vec::with_capacity(N);
        for _ in 0..N {
            let mime = Mime::new("text/plain").unwrap().into_owned();
            v.push(mime);
        }
    });
}