aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-04-05 21:18:32 +0200
committerTomasz Chojnacki <tomaszchojnacki2001@gmail.com>2023-04-05 21:18:32 +0200
commitfeb51c3a6e7eb8a7ac3fa22ac5d12d20e84eb65f (patch)
tree3272bdb35d4f9f76c612f3198b1e94a945e54c71
parent4ecfe6624434f15f3ac00142f7a3c4d78bfab3a1 (diff)
downloadgleam_aoc2020-feb51c3a6e7eb8a7ac3fa22ac5d12d20e84eb65f.tar.gz
gleam_aoc2020-feb51c3a6e7eb8a7ac3fa22ac5d12d20e84eb65f.zip
Use new module running and remove the runner
-rw-r--r--aoc-2020-gleam/src/aoc_2020_gleam.gleam29
-rw-r--r--aoc-2020-gleam/src/days/day01.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day02.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day03.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day04.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day05.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day06.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day07.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day08.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day09.gleam2
-rw-r--r--aoc-2020-gleam/src/days/day10.gleam2
-rw-r--r--aoc-2020-gleam/src/util/runner.gleam32
12 files changed, 10 insertions, 71 deletions
diff --git a/aoc-2020-gleam/src/aoc_2020_gleam.gleam b/aoc-2020-gleam/src/aoc_2020_gleam.gleam
deleted file mode 100644
index 6a58229..0000000
--- a/aoc-2020-gleam/src/aoc_2020_gleam.gleam
+++ /dev/null
@@ -1,29 +0,0 @@
-import gleam/io
-import util/runner
-import days/day01
-import days/day02
-import days/day03
-import days/day04
-import days/day05
-import days/day06
-import days/day07
-import days/day08
-import days/day09
-import days/day10
-
-pub fn main() -> Nil {
- use day <- runner.with_day()
- case day {
- 1 -> day01.run()
- 2 -> day02.run()
- 3 -> day03.run()
- 4 -> day04.run()
- 5 -> day05.run()
- 6 -> day06.run()
- 7 -> day07.run()
- 8 -> day08.run()
- 9 -> day09.run()
- 10 -> day10.run()
- _ -> io.println("Day not found!")
- }
-}
diff --git a/aoc-2020-gleam/src/days/day01.gleam b/aoc-2020-gleam/src/days/day01.gleam
index b0daf63..1616cab 100644
--- a/aoc-2020-gleam/src/days/day01.gleam
+++ b/aoc-2020-gleam/src/days/day01.gleam
@@ -20,7 +20,7 @@ fn part2(numbers: List(Int)) -> Int {
solve(numbers, n: 3)
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_numbers("test01")
let assert 514_579 = part1(test)
let assert 241_861_950 = part2(test)
diff --git a/aoc-2020-gleam/src/days/day02.gleam b/aoc-2020-gleam/src/days/day02.gleam
index 530ab0f..5a5a907 100644
--- a/aoc-2020-gleam/src/days/day02.gleam
+++ b/aoc-2020-gleam/src/days/day02.gleam
@@ -77,7 +77,7 @@ fn part2(lines: List(String)) -> Int {
)
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_lines("test02")
let assert 2 = part1(test)
let assert 1 = part2(test)
diff --git a/aoc-2020-gleam/src/days/day03.gleam b/aoc-2020-gleam/src/days/day03.gleam
index 4c1ef59..3a62419 100644
--- a/aoc-2020-gleam/src/days/day03.gleam
+++ b/aoc-2020-gleam/src/days/day03.gleam
@@ -87,7 +87,7 @@ fn part2(text: String) -> Int {
|> int.product
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_text("test03")
let assert 7 = part1(test)
let assert 336 = part2(test)
diff --git a/aoc-2020-gleam/src/days/day04.gleam b/aoc-2020-gleam/src/days/day04.gleam
index 305cfa1..e5d5d21 100644
--- a/aoc-2020-gleam/src/days/day04.gleam
+++ b/aoc-2020-gleam/src/days/day04.gleam
@@ -132,7 +132,7 @@ fn part2(text: String) -> Int {
|> listx.count(satisfying: is_valid2)
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_text("test04")
let assert 2 = part1(test)
let assert 2 = part2(test)
diff --git a/aoc-2020-gleam/src/days/day05.gleam b/aoc-2020-gleam/src/days/day05.gleam
index b3448a8..59211fc 100644
--- a/aoc-2020-gleam/src/days/day05.gleam
+++ b/aoc-2020-gleam/src/days/day05.gleam
@@ -43,7 +43,7 @@ fn part2(lines: List(String)) -> Int {
|> resx.assert_unwrap
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_lines("test05")
let assert 820 = part1(test)
diff --git a/aoc-2020-gleam/src/days/day06.gleam b/aoc-2020-gleam/src/days/day06.gleam
index f877630..ee01071 100644
--- a/aoc-2020-gleam/src/days/day06.gleam
+++ b/aoc-2020-gleam/src/days/day06.gleam
@@ -79,7 +79,7 @@ fn part2(text: String) -> Int {
solve(text, with: answered_by_everyone)
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_text("test06")
let assert 11 = part1(test)
let assert 6 = part2(test)
diff --git a/aoc-2020-gleam/src/days/day07.gleam b/aoc-2020-gleam/src/days/day07.gleam
index fb5949c..2671d72 100644
--- a/aoc-2020-gleam/src/days/day07.gleam
+++ b/aoc-2020-gleam/src/days/day07.gleam
@@ -101,7 +101,7 @@ fn part2(lines: List(String)) -> Int {
|> int.subtract(1)
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_lines("test07")
let assert 4 = part1(test)
let assert 32 = part2(test)
diff --git a/aoc-2020-gleam/src/days/day08.gleam b/aoc-2020-gleam/src/days/day08.gleam
index 9ef430b..3a0aa4f 100644
--- a/aoc-2020-gleam/src/days/day08.gleam
+++ b/aoc-2020-gleam/src/days/day08.gleam
@@ -151,7 +151,7 @@ fn part2(lines: List(String)) -> Int {
acc
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_lines("test08")
let assert 5 = part1(test)
let assert 8 = part2(test)
diff --git a/aoc-2020-gleam/src/days/day09.gleam b/aoc-2020-gleam/src/days/day09.gleam
index 81dac89..1081f64 100644
--- a/aoc-2020-gleam/src/days/day09.gleam
+++ b/aoc-2020-gleam/src/days/day09.gleam
@@ -55,7 +55,7 @@ fn part2(numbers: List(Int), preamble_length: Int) -> Int {
}
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_numbers("test09")
let assert 127 = part1(test, 5)
let assert 62 = part2(test, 5)
diff --git a/aoc-2020-gleam/src/days/day10.gleam b/aoc-2020-gleam/src/days/day10.gleam
index ea97ed0..b53000b 100644
--- a/aoc-2020-gleam/src/days/day10.gleam
+++ b/aoc-2020-gleam/src/days/day10.gleam
@@ -54,7 +54,7 @@ fn part2(numbers: List(Int)) -> Int {
arrangements(device_joltage, adapters, cache)
}
-pub fn run() -> Nil {
+pub fn main() -> Nil {
let test = input_util.read_numbers("test10")
let assert 220 = part1(test)
let assert 19_208 = part2(test)
diff --git a/aoc-2020-gleam/src/util/runner.gleam b/aoc-2020-gleam/src/util/runner.gleam
deleted file mode 100644
index 938f5b3..0000000
--- a/aoc-2020-gleam/src/util/runner.gleam
+++ /dev/null
@@ -1,32 +0,0 @@
-import gleam/list
-import gleam/int
-import gleam/io
-import gleam/result as res
-import gleam/erlang.{start_arguments}
-
-fn get_day(handler: fn(Int) -> Nil) -> Result(Nil, String) {
- let args = start_arguments()
-
- use first <- res.then(
- args
- |> list.first()
- |> res.replace_error("Pass the day as first argument!"),
- )
-
- use day <- res.then(
- first
- |> int.parse()
- |> res.replace_error("The day argument must be a number!"),
- )
-
- handler(day)
-
- Ok(Nil)
-}
-
-pub fn with_day(handler: fn(Int) -> Nil) -> Nil {
- handler
- |> get_day
- |> res.map_error(io.println)
- |> res.unwrap(or: Nil)
-}