diff options
author | J.J <thechairman@thechairman.info> | 2024-05-30 21:50:02 -0400 |
---|---|---|
committer | J.J <thechairman@thechairman.info> | 2024-05-30 21:50:02 -0400 |
commit | 612fd986ab1e00b6d34dc1937136250e08e89325 (patch) | |
tree | a3c93952040c6afdf348b5831619a45db7ba0a2e /aoc2023/build/packages/adglent/src/adglent.gleam | |
parent | 231c2b688d1e6cf0846d46e883da30e042a9c6cf (diff) | |
download | gleam_aoc-612fd986ab1e00b6d34dc1937136250e08e89325.tar.gz gleam_aoc-612fd986ab1e00b6d34dc1937136250e08e89325.zip |
cleanup
Diffstat (limited to 'aoc2023/build/packages/adglent/src/adglent.gleam')
-rw-r--r-- | aoc2023/build/packages/adglent/src/adglent.gleam | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/aoc2023/build/packages/adglent/src/adglent.gleam b/aoc2023/build/packages/adglent/src/adglent.gleam new file mode 100644 index 0000000..077d49d --- /dev/null +++ b/aoc2023/build/packages/adglent/src/adglent.gleam @@ -0,0 +1,56 @@ +import simplifile.{type FileError} +import gleam/list +import gleam/string + +pub type Example(a) { + Example(input: String, answer: a) +} + +pub fn inspect(value: a) -> String { + let inspected_value = string.inspect(value) + case + inspected_value + |> string.starts_with("\"") + { + True -> + inspected_value + |> string.drop_left(1) + |> string.drop_right(1) + False -> inspected_value + } +} + +pub fn get_input(day: String) -> Result(String, FileError) { + simplifile.read("src/day" <> day <> "/input.txt") +} + +pub fn get_test_folder(day: String) -> String { + "test/day" <> day +} + +pub type Problem { + First + Second +} + +pub fn get_part() -> Result(Problem, Nil) { + case start_arguments() { + ["1"] -> Ok(First) + ["2"] -> Ok(Second) + _ -> Error(Nil) + } +} + +pub fn start_arguments() -> List(String) { + get_start_arguments() + |> list.map(to_string) +} + +type Charlist + +/// Transform a charlist to a string +@external(erlang, "unicode", "characters_to_binary") +fn to_string(a: Charlist) -> String + +@external(erlang, "init", "get_plain_arguments") +fn get_start_arguments() -> List(Charlist) |