aboutsummaryrefslogtreecommitdiff
path: root/aoc-2019-elixir/lib/util.ex
diff options
context:
space:
mode:
Diffstat (limited to 'aoc-2019-elixir/lib/util.ex')
-rw-r--r--aoc-2019-elixir/lib/util.ex26
1 files changed, 26 insertions, 0 deletions
diff --git a/aoc-2019-elixir/lib/util.ex b/aoc-2019-elixir/lib/util.ex
new file mode 100644
index 0000000..ada31be
--- /dev/null
+++ b/aoc-2019-elixir/lib/util.ex
@@ -0,0 +1,26 @@
+defmodule Util.Integer do
+ @spec parse!(binary) :: integer
+ def parse!(binary) do
+ {integer, _remainder} = Integer.parse(binary)
+ integer
+ end
+end
+
+defmodule Util.Input do
+ @spec read_text(binary) :: binary
+ def read_text(filename) do
+ File.read!("data/#{filename}.txt")
+ end
+
+ @spec read_lines(binary) :: [binary]
+ def read_lines(filename) do
+ filename |> read_text() |> String.split()
+ end
+
+ @spec read_numbers(binary) :: [integer]
+ def read_numbers(filename) do
+ filename
+ |> read_lines()
+ |> Enum.map(&Util.Integer.parse!/1)
+ end
+end