aboutsummaryrefslogtreecommitdiff
path: root/aoc-2020-gleam/src/util/input_util.gleam
blob: 3e6b07634912fe19df9636470b3fc85d433d7e1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import gleam/list
import gleam/string
import gleam/erlang/file
import ext/intx
import ext/stringx
import ext/resultx

pub fn read_text(filename: String) -> String {
  "data/" <> filename <> ".txt"
  |> file.read()
  |> resultx.force_unwrap()
}

pub fn read_lines(filename: String) -> List(String) {
  filename
  |> read_text()
  |> string.split(on: "\n")
  |> list.map(with: string.trim)
  |> list.filter(for: stringx.is_not_empty)
}

pub fn read_numbers(filename: String) -> List(Int) {
  filename
  |> read_lines()
  |> list.map(with: intx.force_parse)
}