sitewriter 0.5.5

A sitemap writing library.
Documentation
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use sitewriter::{ChangeFreq, UrlEntry, UrlEntryBuilder};

fn benchmark(c: &mut Criterion) {
    use chrono::Utc;

    let urls = vec![
        // Builder pattern
        UrlEntryBuilder::default()
            .loc("https://domain.com".parse().unwrap())
            .priority(0.2)
            .build()
            .unwrap(),
        // Using new
        UrlEntry::new(
            "https://domain.com/some_url".parse().unwrap(),
            None,
            None,
            None,
        ),
        // Initializing the struct.
        UrlEntry {
            loc: "https://domain.com/another".parse().unwrap(),
            priority: None,
            changefreq: Some(ChangeFreq::Always),
            lastmod: None,
        },
        UrlEntry {
            loc: "https://domain.com/url".parse().unwrap(),
            changefreq: Some(ChangeFreq::Daily),
            priority: Some(0.8),
            lastmod: Some(Utc::now()),
        },
        UrlEntry {
            loc: "https://domain.com/aa".parse().unwrap(),
            changefreq: Some(ChangeFreq::Monthly),
            priority: None,
            lastmod: None,
        },
        UrlEntry {
            loc: "https://domain.com/bb".parse().unwrap(),
            changefreq: None,
            priority: None,
            lastmod: None,
        },
        UrlEntry {
            loc: "https://domain.com/bb&id='<test>'".parse().unwrap(),
            changefreq: None,
            priority: Some(0.4),
            lastmod: None,
        },
    ];

    c.bench_function("generate_str", |b| {
        b.iter(|| sitewriter::generate_str(black_box(&urls)))
    });

    c.bench_function("generate_bytes", |b| {
        b.iter(|| sitewriter::generate_bytes(black_box(&urls)))
    });
}

criterion_group!(benches, benchmark);
criterion_main!(benches);