diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-12-04 15:59:34 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-12-04 15:59:34 -0500 |
commit | 29b1679b024f4f56d43b1646d6fa5d301994f6f4 (patch) | |
tree | 4106ef5fa0533fa20145cb0ea4378af2e5510135 | |
parent | efd70672fb0bc5cc29672b480401cc7be2466c57 (diff) | |
download | advent-of-code-29b1679b024f4f56d43b1646d6fa5d301994f6f4.tar.gz advent-of-code-29b1679b024f4f56d43b1646d6fa5d301994f6f4.zip |
refactor
-rw-r--r-- | src/2020/3/mod.rs | 7 | ||||
-rw-r--r-- | src/util.rs | 9 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/2020/3/mod.rs b/src/2020/3/mod.rs index 58aabfd..825e31c 100644 --- a/src/2020/3/mod.rs +++ b/src/2020/3/mod.rs @@ -1,5 +1,4 @@ use anyhow::Context as _; -use std::io::Read as _; struct Map { grid: Vec<Vec<bool>>, @@ -85,10 +84,6 @@ pub fn part2() -> anyhow::Result<()> { } fn read_map() -> anyhow::Result<Map> { - let mut f = std::fs::File::open("data/3.txt") - .context("couldn't find data file 3.txt")?; - let mut map_str = vec![]; - f.read_to_end(&mut map_str) - .context("failed to read map contents")?; + let map_str = crate::util::read_file("data/3.txt")?; Map::parse(&map_str) } diff --git a/src/util.rs b/src/util.rs index 94f9796..6078b5d 100644 --- a/src/util.rs +++ b/src/util.rs @@ -16,6 +16,15 @@ pub fn read_ints(filename: &str) -> anyhow::Result<Vec<i32>> { ints } +pub fn read_file(filename: &str) -> anyhow::Result<Vec<u8>> { + let mut f = std::fs::File::open(filename) + .with_context(|| format!("couldn't find data file {}", filename))?; + let mut s = vec![]; + f.read_to_end(&mut s) + .context("failed to read map contents")?; + Ok(s) +} + pub fn read_file_str(filename: &str) -> anyhow::Result<String> { let mut f = std::fs::File::open(filename) .with_context(|| format!("couldn't find data file {}", filename))?; |