Skip to content

Commit cb77021

Browse files
committed
allow to skip generator definition
1 parent 29c2843 commit cb77021

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Usage
1717
-----
1818

1919
The generator and solutions for a given day must be implemented in a module
20-
called `dayXX`. Then you can simply invoke the `aoc::main!` macro in your
20+
called `dayX`. Then you can simply invoke the `aoc::main!` macro in your
2121
`main.rs`:
2222

2323
```rust
@@ -48,11 +48,13 @@ mod day1 {
4848
}
4949

5050
mod day2;
51+
mod day3;
5152

5253
aoc::main! {
5354
year 2019;
5455
day1 : generator => part_1, part_2;
5556
day2 : generator => part_1, part_2, part_2_optimized;
57+
day3 => part_1, part_2; // no generator, a &str is passed
5658
}
5759
```
5860

src/lib.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ pub fn get_conn_token() -> Result<String, std::io::Error> {
117117
macro_rules! main {
118118
(
119119
year $year: expr;
120-
$( $day: ident : $generator: ident => $( $solution: ident ),+ );+
120+
$( $day: ident $( : $generator: ident )? => $( $solution: ident ),+ );+
121121
$( ; )?
122122
) => {
123123
use std::time::Instant;
@@ -158,10 +158,14 @@ macro_rules! main {
158158
}
159159
};
160160

161-
let start = Instant::now();
162-
let input = $day::$generator(&data);
163-
let elapsed = start.elapsed();
164-
$crate::print_with_duration("generator", None, elapsed);
161+
let input = data.as_str();
162+
163+
$(
164+
let start = Instant::now();
165+
let input = $day::$generator(&data);
166+
let elapsed = start.elapsed();
167+
$crate::print_with_duration("generator", None, elapsed);
168+
)?
165169

166170
$({
167171
let start = Instant::now();

0 commit comments

Comments
 (0)