Files
aoc/sol/24/aoc.cpp
2024-12-11 08:08:46 +01:00

39 lines
974 B
C++

#include <span>
#include <expected>
#include <string>
#include "aoc.hpp"
#include "ctre.hpp"
namespace aoc24 {
auto entry([[maybe_unused]]std::span<char const*> const& args) -> std::expected<void, aoc::error> {
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);
default:
return aoc::make_error(fmt::format("day {}", day), std::errc::not_supported);
}
return {};
}
}