Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ day number.
```diff
// Add each new day implementation to this array:
let allChallenges: [any AdventDay] = [
- Day00()
+ Day00(),
+ Day01(),
- Day00.self
+ Day00.self,
+ Day01.self,
]
```

Expand Down
13 changes: 7 additions & 6 deletions Sources/AdventOfCode.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import ArgumentParser

// Add each new day implementation to this array:
let allChallenges: [any AdventDay] = [
Day00()
let allChallenges: [any AdventDay.Type] = [
Day00.self
]

@main
Expand All @@ -17,7 +17,7 @@ struct AdventOfCode: AsyncParsableCommand {
var all: Bool = false

/// The selected day, or the latest day if no selection is provided.
var selectedChallenge: any AdventDay {
private var selectedChallenge: any AdventDay.Type {
get throws {
if let day {
if let challenge = allChallenges.first(where: { $0.day == day }) {
Expand All @@ -32,7 +32,7 @@ struct AdventOfCode: AsyncParsableCommand {
}

/// The latest challenge in `allChallenges`.
var latestChallenge: any AdventDay {
private var latestChallenge: any AdventDay.Type {
allChallenges.max(by: { $0.day < $1.day })!
}

Expand Down Expand Up @@ -64,9 +64,10 @@ struct AdventOfCode: AsyncParsableCommand {
try [selectedChallenge]
}

for challenge in challenges {
print("Executing Advent of Code challenge \(challenge.day)...")
for challengeType in challenges {
print("Executing Advent of Code challenge \(challengeType.day)...")

let challenge = challengeType.init()
let timing1 = await run(part: challenge.part1, named: "Part 1")
let timing2 = await run(part: challenge.part2, named: "Part 2")

Expand Down