adding errors and test_log to templates

This commit is contained in:
Dylan Thies
2024-01-02 19:57:14 -05:00
parent 00ed877adb
commit 03e8450ac2
4 changed files with 48 additions and 12 deletions

View File

@@ -10,3 +10,8 @@ repository.workspace = true
[dependencies] [dependencies]
nom = { workspace = true } nom = { workspace = true }
itertools = {workspace = true } itertools = {workspace = true }
error-stack = {workspace = true}
[dev-dependencies]
test-log = {workspace=true}

View File

@@ -5,8 +5,8 @@ use {{crate_name}}::part2;
fn main() { fn main() {
let input = include_str!("./input.txt"); let input = include_str!("./input.txt");
let part1_result = part1(input); let part1_result = part1(input).expect("part 1 should have no error");
println!("part 1: {part1_result}"); println!("part 1: {part1_result}");
let part2_result = part2(input); let part2_result = part2(input).expect("part 2 should have no error");
println!("part 2: {part2_result}"); println!("part 2: {part2_result}");
} }

View File

@@ -1,8 +1,23 @@
#![warn(clippy::all, clippy::pedantic)] #![warn(clippy::all, clippy::pedantic)]
#[must_use] use std::fmt::Display;
pub fn part1 (_input: &str) -> String {
"Not Finished".to_string() use error_stack::{Context, Result};
// {{project-name}}
#[derive(Debug)]
pub struct {{project-name|upper_camel_case}}Part1Error;
impl Context for {{project-name|upper_camel_case}}Part1Error {}
impl Display for {{project-name|upper_camel_case}}Part1Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "day 1 part 1 error")
}
}
pub fn part1 (_input: &str) -> Result<String, {{project-name|upper_camel_case}}Part1Error> {
Ok("Not Finished".to_string())
} }
#[cfg(test)] #[cfg(test)]
@@ -11,9 +26,10 @@ mod test {
const INPUT: &str = ""; const INPUT: &str = "";
#[test] #[test_log::test]
#[test_log(default_log_filter = "trace")]
fn part1_works() { fn part1_works() {
let result = part1(INPUT); let result = part1(INPUT).unwrap();
assert_eq!(result, "Not Finished".to_string()); assert_eq!(result, "Not Finished".to_string());
} }
} }

View File

@@ -1,8 +1,22 @@
#![warn(clippy::all, clippy::pedantic)] #![warn(clippy::all, clippy::pedantic)]
#[must_use] use std::fmt::Display;
pub fn part2 (_input: &str) -> String {
"Not Finished".to_string() use error_stack::{Context, Result};
#[derive(Debug)]
pub struct {{ project-name | upper_camel_case }}Part2Error;
impl Context for {{ project-name | upper_camel_case }}Part2Error {}
impl Display for {{ project-name | upper_camel_case }}Part2Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "day 1 part 1 error")
}
}
pub fn part2 (_input: &str) -> Result<String, {{ project-name | upper_camel_case }}Part2Error> {
Ok("Not Finished".to_string())
} }
#[cfg(test)] #[cfg(test)]
@@ -11,9 +25,10 @@ mod test {
const INPUT: &str = ""; const INPUT: &str = "";
#[test] #[test_log::test]
#[test_log(default_log_filter = "trace")]
fn part2_works() { fn part2_works() {
let result = part2(INPUT); let result = part2(INPUT).unwrap();
assert_eq!(result, "Not Finished".to_string()); assert_eq!(result, "Not Finished".to_string());
} }
} }