diff options
Diffstat (limited to 'vendor/pulldown-cmark/benches/markdown-it.rs')
-rw-r--r-- | vendor/pulldown-cmark/benches/markdown-it.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/pulldown-cmark/benches/markdown-it.rs b/vendor/pulldown-cmark/benches/markdown-it.rs new file mode 100644 index 000000000..69cbc2a79 --- /dev/null +++ b/vendor/pulldown-cmark/benches/markdown-it.rs @@ -0,0 +1,29 @@ +use criterion::{criterion_group, criterion_main, Criterion}; +use pulldown_cmark::{html, Parser}; +use std::fs::{read_dir, read_to_string}; + +pub fn markdown_it_samples(c: &mut Criterion) { + let folder = read_dir("./third_party/markdown-it").unwrap(); + for entry in folder { + let entry = entry.unwrap(); + + if entry.metadata().unwrap().is_file() { + let filename = &entry.file_name().into_string().unwrap(); + if !filename.ends_with(".md") || filename == "README.md" { + continue; + } + + let corpus = read_to_string(entry.path()).unwrap(); + let mut result = String::with_capacity(corpus.len() * 3 / 2); + + c.bench_function(filename, |b| { + b.iter(|| { + html::push_html(&mut result, Parser::new(&corpus)); + }) + }); + } + } +} + +criterion_group!(benches, markdown_it_samples); +criterion_main!(benches); |