From 283e63f07b3062bad179591295d94669bcd2a862 Mon Sep 17 00:00:00 2001 From: Jan Bujak Date: Wed, 18 Jul 2018 17:59:38 +0200 Subject: [PATCH] Allow setup before running benchmarks --- benchmarks/src/main.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/benchmarks/src/main.rs b/benchmarks/src/main.rs index 5fe8a123..c670adf7 100644 --- a/benchmarks/src/main.rs +++ b/benchmarks/src/main.rs @@ -86,11 +86,12 @@ impl Bencher { Bencher { benches: Vec::new() } } - fn add< R, F: 'static + Fn() -> R >( &mut self, name: &str, callback: F ) { + fn add< R, F: 'static + Fn() -> R, G: 'static + Fn() -> F >( &mut self, name: &str, callback: G ) { self.benches.push( Bench { name: name.to_owned(), callback: Box::new( move |bench| { println!( "Benchmarking '{}'...", bench.name ); + let callback = callback(); let result = utils::benchmark::< Timer, R, F >( &callback ); println!( " {}", result ); }) @@ -136,8 +137,8 @@ fn run_benchmarks< F: FnOnce( &mut Bencher ) >( callback: F ) { fn main() { run_benchmarks( |bencher| { - bencher.add( "call-into-js", || js!( @(no_return) ) ); - bencher.add( "call-into-js-returning-undefined", || js!() ); - bencher.add( "call-into-js-with-string", || js!( @(no_return) var test = @{"Hello world!"}; ) ); + bencher.add( "call-into-js", || || js!( @(no_return) ) ); + bencher.add( "call-into-js-returning-undefined", || || js!() ); + bencher.add( "call-into-js-with-string", || || js!( @(no_return) var test = @{"Hello world!"}; ) ); }); }