aoc-lib 1.0.3

A library that lets you focus on problem-solving rather than boilerplate when doing Advent of Code
Documentation
use crate::input_type::InputType;
use std::path::{Path, PathBuf};

pub(crate) const INPUT_DIR: &str = "input";

pub fn get_day_path(year: u16, day: u8, input_type: InputType) -> PathBuf {
    let day = add_leading_zeros(day.to_string(), 2);
    Path::new(INPUT_DIR)
        .to_path_buf()
        .join(format!("year{}_day{}.{input_type}", year, day))
}

fn add_leading_zeros(n: String, desired_len: usize) -> String {
    let zeros = vec!['0'; desired_len - n.len()]
        .iter()
        .cloned()
        .collect::<String>();
    format!("{zeros}{n}")
}

#[cfg(test)]
mod tests {
    use crate::input_path::add_leading_zeros;

    #[test]
    fn test_add_leading_zeros() {
        assert_eq!(add_leading_zeros("1".to_string(), 2), "01");
    }
}