@@ -14,7 +14,10 @@ mod entry;
1414mod  uri; 
1515mod  util; 
1616
17+ use  std:: { cell:: RefCell ,  rc:: Rc } ; 
18+ 
1719pub  use  bench:: * ; 
20+ use  codspeed:: codspeed:: CodSpeed ; 
1821
1922pub  fn  main ( )  { 
2023    // Outlined steps of original divan::main and their equivalent in codspeed instrumented mode 
@@ -31,6 +34,7 @@ pub fn main() {
3134    // filtering is managed by the `cargo-codspeed` wrappers before we reach this point. 
3235
3336    // 4. Scan the tree and execute benchmarks 
37+     let  codspeed = Rc :: new ( RefCell :: new ( CodSpeed :: new ( ) ) ) ; 
3438    for  entry in  bench_entries. iter ( )  { 
3539        let  entry_uri = uri:: generate ( entry. meta . display_name ,  & entry. meta ) ; 
3640
@@ -42,14 +46,14 @@ pub fn main() {
4246        } 
4347        match  entry. bench  { 
4448            entry:: BenchEntryRunner :: Plain ( bench_fn)  => { 
45-                 bench_fn ( bench:: Bencher :: new ( entry_uri) ) ; 
49+                 bench_fn ( bench:: Bencher :: new ( & codspeed ,   entry_uri) ) ; 
4650            } 
4751            entry:: BenchEntryRunner :: Args ( bench_runner)  => { 
4852                let  bench_runner = bench_runner ( ) ; 
4953
5054                for  ( arg_index,  arg_name)  in  bench_runner. arg_names ( ) . iter ( ) . enumerate ( )  { 
5155                    let  uri_with_arg = uri:: append_arg ( entry_uri. as_str ( ) ,  arg_name) ; 
52-                     let  bencher = bench:: Bencher :: new ( uri_with_arg) ; 
56+                     let  bencher = bench:: Bencher :: new ( & codspeed ,   uri_with_arg) ; 
5357
5458                    bench_runner. bench ( bencher,  arg_index) ; 
5559                } 
0 commit comments