#include #include #include #include "aoc.hpp" #include "ctre.hpp" namespace aoc24 { auto entry([[maybe_unused]]std::span const& args) -> std::expected { using namespace aoc::types; u32 day = 1; if (args.size() > 1) { if (ctre::match<"^[0-9]+$">(args[1])) day = u32(std::stoul(args[1])); else fmt::print(stderr, "arg: {} is not a number\n", args[1]); } switch (day) { case 1: return day01(args); // case 2: return day02(args); case 3: return day03(args); // case 4: return day04(args); case 5: return day05(args); case 6: return day06(args); // case 7: return day07(args); case 8: return day08(args); case 9: return day09(args); case 10: return day10(args); // case 11: return day11(args); case 14: return day14(args); case 16: return day16(args); default: return aoc::make_error(fmt::format("day {}", day), std::errc::not_supported); } return {}; } }