sigma 0.1.1

Sigma σ is a Simple, Safe and Fast Template language
Documentation
use criterion::{criterion_group, criterion_main, Criterion};
use sigma::Sigma;
const INPUT_1KB: &str = include_str!("./small_data_1kb.txt");
const INPUT_10KB: &str = include_str!("./small_data_10kb.txt");
const INPUT_50KB: &str = include_str!("./small_data_50kb.txt");
const INPUT_500KB: &str = include_str!("./small_data_500kb.txt");
const INPUT_1MB: &str = include_str!("./small_data_1mb.txt");

fn small_data_parse(c: &mut Criterion) {
  let sigma_small_1kb = Sigma::new(INPUT_1KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  c.bench_function("small_data_1kb_parse", move |b| {
    b.iter_with_setup(
      || sigma_small_1kb.clone(),
      |sigma| sigma.parse().unwrap(),
    );
  });

  let sigma_small_10kb = Sigma::new(INPUT_10KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  c.bench_function("small_data_10kb_parse", move |b| {
    b.iter_with_setup(
      || sigma_small_10kb.clone(),
      |sigma| sigma.parse().unwrap(),
    );
  });

  let sigma_small_50kb = Sigma::new(INPUT_50KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  c.bench_function("small_data_50kb_parse", move |b| {
    b.iter_with_setup(
      || sigma_small_50kb.clone(),
      |sigma| sigma.parse().unwrap(),
    );
  });

  let sigma_small_500kb = Sigma::new(INPUT_500KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  c.bench_function("small_data_500kb_parse", move |b| {
    b.iter_with_setup(
      || sigma_small_500kb.clone(),
      |sigma| sigma.parse().unwrap(),
    );
  });
  let sigma_small_1mb = Sigma::new(INPUT_1MB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  c.bench_function("small_data_1mb_parse", move |b| {
    b.iter_with_setup(
      || sigma_small_1mb.clone(),
      |sigma| sigma.parse().unwrap(),
    );
  });
}

fn small_data_compile(c: &mut Criterion) {
  let sigma_small_1kb = Sigma::new(INPUT_1KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  let sigma_small_1kb = sigma_small_1kb.parse().unwrap();
  c.bench_function("small_data_1kb_compile", move |b| {
    b.iter_with_setup(
      || sigma_small_1kb.clone(),
      |sigma| sigma.compile().unwrap(),
    );
  });

  let sigma_small_10kb = Sigma::new(INPUT_1KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  let sigma_small_10kb = sigma_small_10kb.parse().unwrap();
  c.bench_function("small_data_10kb_compile", move |b| {
    b.iter_with_setup(
      || sigma_small_10kb.clone(),
      |sigma| sigma.compile().unwrap(),
    );
  });

  let sigma_small_50kb = Sigma::new(INPUT_50KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  let sigma_small_50kb = sigma_small_50kb.parse().unwrap();
  c.bench_function("small_data_50kb_compile", move |b| {
    b.iter_with_setup(
      || sigma_small_50kb.clone(),
      |sigma| sigma.compile().unwrap(),
    );
  });
  let sigma_small_500kb = Sigma::new(INPUT_500KB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  let sigma_small_500kb = sigma_small_500kb.parse().unwrap();
  c.bench_function("small_data_500kb_compile", move |b| {
    b.iter_with_setup(
      || sigma_small_500kb.clone(),
      |sigma| sigma.compile().unwrap(),
    );
  });
  let sigma_small_1mb = Sigma::new(INPUT_1MB)
    .bind("sigma_one", "sigma1")
    .bind("sigma_two", "sigma2");
  let sigma_small_1mb = sigma_small_1mb.parse().unwrap();

  c.bench_function("small_data_1mb_compile", move |b| {
    b.iter_with_setup(
      || sigma_small_1mb.clone(),
      |sigma| sigma.compile().unwrap(),
    );
  });
}
criterion_group!(benches, small_data_parse, small_data_compile);
criterion_main!(benches);