plf 0.1.2

A template engine for Rust inspired by Tera/Jinja2/Django
Documentation
use std::hint::black_box;
use std::path::PathBuf;

use criterion::{Criterion, criterion_group, criterion_main};
use serde_derive::Serialize;

use plf::value::Value;

#[derive(Serialize, Default)]
struct Page {
    path: PathBuf,
    title: String,
    summary: String,
    content: String,
    permalink: String,
    draft: bool,
    generate_feed: bool,
    word_count: usize,
    reading_time: usize,
    backlinks: Vec<String>,
    pages: Vec<Page>,
}

fn criterion_benchmark(c: &mut Criterion) {
    let page = Page::default();

    c.bench_function("serialization", |b| {
        b.iter(|| {
            black_box(Value::from_serializable(&page));
        })
    });
}

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