setting up for 2024 day 6 and fixing some of the comments

This commit is contained in:
Dylan Thies
2024-12-05 16:23:47 -05:00
parent 25dedc74fa
commit fb33e62a56
8 changed files with 132 additions and 20 deletions

23
2024/day-6/Cargo.toml Normal file
View File

@@ -0,0 +1,23 @@
[package]
name = "day-6"
version.workspace = true
edition.workspace = true
authors.workspace = true
repository.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
nom.workspace = true
itertools.workspace = true
log.workspace = true
error-stack.workspace = true
thiserror.workspace = true
dhat.workspace = true
[dev-dependencies]
test-log.workspace = true
[features]
dhat-heap = []

4
2024/day-6/src/lib.rs Normal file
View File

@@ -0,0 +1,4 @@
pub mod part1;
pub use crate::part1::*;
pub mod part2;
pub use crate::part2::*;

31
2024/day-6/src/main.rs Normal file
View File

@@ -0,0 +1,31 @@
#![warn(clippy::all, clippy::pedantic)]
use day_6::part1;
use day_6::part2;
use error_stack::{Result, ResultExt};
use thiserror::Error;
#[cfg(feature = "dhat-heap")]
#[global_allocator]
static ALLOC: dhat::Alloc = dhat::Alloc;
#[derive(Debug, Error)]
enum Day6Error {
#[error("Part 1 failed")]
Part1Error,
#[error("Part 2 failed")]
Part2Error,
}
fn main() -> Result<(), Day6Error> {
#[cfg(feature = "dhat-heap")]
let _profiler = dhat::Profiler::new_heap();
let input = include_str!("./input.txt");
let part1_result = part1(input).change_context(Day6Error::Part1Error)?;
println!("part 1: {part1_result}");
let part2_result = part2(input).change_context(Day6Error::Part2Error)?;
println!("part 2: {part2_result}");
Ok(())
}

35
2024/day-6/src/part1.rs Normal file
View File

@@ -0,0 +1,35 @@
#![warn(clippy::all, clippy::pedantic)]
use error_stack::Result;
use thiserror::Error;
// day-6
#[derive(Debug, Error)]
pub enum Day6Part1Error{
#[error("Problem parsing Day 6")]
ParseError,
}
/// Day-6 Part 2 for 2024 advent of code
/// Problem can be found here: <https://adventofcode.com/2024/day/6>
///
/// # Errors
/// - `ParseError` there was an issue with the parser
pub fn part1 (_input: &str) -> Result<String, Day6Part1Error> {
Ok("Not Finished".to_string())
}
#[cfg(test)]
mod test {
use super::*;
const INPUT: &str = "";
#[test_log::test]
#[test_log(default_log_filter = "trace")]
fn part1_works() {
let result = part1(INPUT).unwrap();
assert_eq!(result, "Not Finished".to_string());
}
}

35
2024/day-6/src/part2.rs Normal file
View File

@@ -0,0 +1,35 @@
#![warn(clippy::all, clippy::pedantic)]
use error_stack::Result;
use thiserror::Error;
// day-6
#[derive(Debug, Error)]
pub enum Day6Part2Error{
#[error("Problem parsing Day 6")]
ParseError,
}
/// Day-6 Part 2 for 2024 advent of code
/// Problem can be found here: <https://adventofcode.com/2024/day/6#part2>
///
/// # Errors
/// - `ParseError` there was an issue with the parser
pub fn part2 (_input: &str) -> Result<String, Day6Part2Error> {
Ok("Not Finished".to_string())
}
#[cfg(test)]
mod test {
use super::*;
const INPUT: &str = "";
#[test_log::test]
#[test_log(default_log_filter = "trace")]
fn part2_works() {
let result = part2(INPUT).unwrap();
assert_eq!(result, "Not Finished".to_string());
}
}