1import gleam/int
2import gleam/string
3import simplifile
4
5/// Read input for a given day. If example is True, reads from dayXX_example.txt
6pub fn read_input(day: Int, example: Bool) -> Result(List(String), String) {
7 let day_str = int.to_string(day) |> string.pad_start(2, "0")
8 let suffix = case example {
9 True -> "_example"
10 False -> ""
11 }
12 let path = "input/day" <> day_str <> suffix <> ".txt"
13
14 case simplifile.read(path) {
15 Ok(content) ->
16 Ok(
17 content
18 |> string.trim
19 |> string.split("\n"),
20 )
21 Error(e) -> Error("failed to read " <> path <> ": " <> string.inspect(e))
22 }
23}