1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
//! Constants for all 25 days of Advent
//!
//! ## Examples
//!
//! In your module containing a solution for day 1
//! ```
//! use advent_of_code_traits::days::Day1;
//! ```
//!
//! They are just plain `u32`s.
//! ```
//! # use advent_of_code_traits::days::Day1;
//! assert_eq!(1_u32, Day1);
//! ```
//!
//! They pair well with the [`Part1`](super::Part1) and [`Part2`](super::Part2) consts
//! which are just 1 and 2, but u8 instead of u32 to help avoid mixing them up by accident.
//!
//! You don't have to use these consts at all if you don't want to.
//! ```no_run
//! # use advent_of_code_traits::{ParseInput, Solution};
//! # pub struct Problem;
//! // this works the same as using `Solution<Day2, Part1>`
//! impl Solution<'_, 2, 1> for Problem {
//! # type Input = u32;
//! # type Output = u32;
//! # fn solve(&self, input: &Self::Input) -> Self::Output { 1 }
//! // ...
//! }
//! # impl ParseInput<'_, 2, 1> for Problem {
//! # type Parsed = ();
//! #
//! # fn parse_input(&self, input: &str) -> Self::Parsed {
//! # todo!()
//! # }
//! # }
//! ```
#![allow(non_upper_case_globals)]
include!(concat!(env!("OUT_DIR"), "/const_days.rs"));