summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2020-12-04 15:59:34 -0500
committerJesse Luehrs <doy@tozt.net>2020-12-04 15:59:34 -0500
commit29b1679b024f4f56d43b1646d6fa5d301994f6f4 (patch)
tree4106ef5fa0533fa20145cb0ea4378af2e5510135
parentefd70672fb0bc5cc29672b480401cc7be2466c57 (diff)
downloadadvent-of-code-29b1679b024f4f56d43b1646d6fa5d301994f6f4.tar.gz
advent-of-code-29b1679b024f4f56d43b1646d6fa5d301994f6f4.zip
refactor
-rw-r--r--src/2020/3/mod.rs7
-rw-r--r--src/util.rs9
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))?;