diff options
author | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-04-05 21:18:32 +0200 |
---|---|---|
committer | Tomasz Chojnacki <tomaszchojnacki2001@gmail.com> | 2023-04-05 21:18:32 +0200 |
commit | feb51c3a6e7eb8a7ac3fa22ac5d12d20e84eb65f (patch) | |
tree | 3272bdb35d4f9f76c612f3198b1e94a945e54c71 | |
parent | 4ecfe6624434f15f3ac00142f7a3c4d78bfab3a1 (diff) | |
download | gleam_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.gleam | 29 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day01.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day02.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day03.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day04.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day05.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day06.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day07.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day08.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day09.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/days/day10.gleam | 2 | ||||
-rw-r--r-- | aoc-2020-gleam/src/util/runner.gleam | 32 |
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) -} |