60 lines
1.1 KiB
Markdown
60 lines
1.1 KiB
Markdown
|
# Advent Of Code
|
||
|
|
||
|
Year | Lang | Stars
|
||
|
-----|------|-------
|
||
|
2023 | Rust | 24
|
||
|
|
||
|
## Rust
|
||
|
|
||
|
1. Create folder `src/year_2023/day_XX_name`
|
||
|
|
||
|
2. Create `mod.rs`, `part_one.rs`, Optionally `common.rs`, `part_two.rs`
|
||
|
|
||
|
3. Edit `mod.rs`
|
||
|
|
||
|
```rust
|
||
|
pub mod part_one;
|
||
|
pub mod part_two;
|
||
|
pub mod common;
|
||
|
|
||
|
use crate::utils::solution::Solution;
|
||
|
use crate::utils::input_reader;
|
||
|
|
||
|
pub struct DaySolution ;
|
||
|
|
||
|
|
||
|
impl Solution for DaySolution {
|
||
|
|
||
|
fn input_path(&self) -> &'static str {
|
||
|
"input/XXXX/day_XX/input.txt"
|
||
|
}
|
||
|
|
||
|
fn part_one(&self) -> String {
|
||
|
input_reader::read_input_file(self.input_path(), part_one::part_one)
|
||
|
}
|
||
|
|
||
|
fn part_two(&self) -> String {
|
||
|
input_reader::read_input_file(self.input_path(), part_two::part_two)
|
||
|
// String::from("Not implemented")
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
4. Edit `mod.rs` in `year_XXXX` folder
|
||
|
|
||
|
```rust
|
||
|
pub mod day_XX_problem_name;
|
||
|
//...
|
||
|
let solution: Box<dyn Solution> = match day {
|
||
|
// ...
|
||
|
"XX" => Box::new(day_XX_problem_day::DaySolution),
|
||
|
// ...
|
||
|
```
|
||
|
|
||
|
5. Copy input into `input/XXXX/day_XX/input.txt`
|
||
|
|
||
|
6. Run
|
||
|
|
||
|
```sh
|
||
|
cargo run <year> <day>
|
||
|
```
|