File tree Expand file tree Collapse file tree 1 file changed +11
-14
lines changed Expand file tree Collapse file tree 1 file changed +11
-14
lines changed Original file line number Diff line number Diff line change @@ -7,36 +7,33 @@ macro_rules! benchmark {
7
7
mod $day {
8
8
use aoc:: $year:: $day:: * ;
9
9
use std:: fs;
10
- use std:: path:: PathBuf ;
11
- use std:: sync:: OnceLock ;
10
+ use std:: path:: Path ;
11
+ use std:: sync:: LazyLock ;
12
12
use test:: Bencher ;
13
13
14
- fn load_once( ) -> & ' static str {
15
- static DATA : OnceLock <String > = OnceLock :: new( ) ;
16
- DATA . get_or_init( || {
17
- let year = stringify!( $year) ;
18
- let day = & format!( "{}.txt" , stringify!( $day) ) ;
19
- let path: PathBuf = [ "input" , year, day] . iter( ) . collect( ) ;
20
- fs:: read_to_string( path) . unwrap( )
21
- } )
22
- }
14
+ static DATA : LazyLock <String > = LazyLock :: new( || {
15
+ let year = stringify!( $year) ;
16
+ let day = stringify!( $day) ;
17
+ let path = Path :: new( "input" ) . join( year) . join( day) . with_extension( "txt" ) ;
18
+ fs:: read_to_string( path) . unwrap( )
19
+ } ) ;
23
20
24
21
#[ bench]
25
22
fn parse_bench( b: & mut Bencher ) {
26
- let data = load_once ( ) ;
23
+ let data = & DATA ;
27
24
b. iter( || parse( data) ) ;
28
25
}
29
26
30
27
#[ bench]
31
28
fn part1_bench( b: & mut Bencher ) {
32
- let data = load_once ( ) ;
29
+ let data = & DATA ;
33
30
let input = parse( data) ;
34
31
b. iter( || part1( & input) ) ;
35
32
}
36
33
37
34
#[ bench]
38
35
fn part2_bench( b: & mut Bencher ) {
39
- let data = load_once ( ) ;
36
+ let data = & DATA ;
40
37
let input = parse( data) ;
41
38
b. iter( || part2( & input) ) ;
42
39
}
You can’t perform that action at this time.
0 commit comments