diff options
Diffstat (limited to 'src/util/parse.rs')
-rw-r--r-- | src/util/parse.rs | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/src/util/parse.rs b/src/util/parse.rs index 5f42565..054952a 100644 --- a/src/util/parse.rs +++ b/src/util/parse.rs @@ -1,65 +1,5 @@ use std::io::{BufRead as _, Read as _}; -macro_rules! data { - () => {{ - use anyhow::Context as _; - let file = crate::util::parse::src_file_to_data_file(&std::file!()); - std::fs::File::open(file.clone()) - .with_context(|| format!("couldn't find data file {}", file)) - }}; -} - -macro_rules! data_lines { - () => { - data!().map(|fh| crate::util::parse::lines(fh)) - }; -} - -macro_rules! data_ints { - () => { - data!() - .map(|fh| crate::util::parse::ints(crate::util::parse::lines(fh))) - }; - ($sep:expr) => { - data!().map(|fh| { - crate::util::parse::ints(crate::util::parse::split(fh, $sep)) - }) - }; -} - -macro_rules! data_bytes { - () => { - data!().map(|fh| crate::util::parse::bytes(fh)) - }; -} - -macro_rules! data_str { - () => {{ - data!().map(|fh| crate::util::parse::string(fh)) - }}; -} - -macro_rules! data_bool_grid { - ($t:expr, $f:expr) => {{ - crate::util::parse::bool_grid(data_lines!().unwrap(), $t, $f) - }}; -} - -macro_rules! data_digit_grid { - () => {{ - crate::util::parse::digit_grid(data_lines!().unwrap()) - }}; -} - -pub fn src_file_to_data_file(file: &str) -> String { - let parts: Vec<_> = file.split('/').collect(); - format!( - "data/{}/{}.txt", - parts[parts.len() - 3], - parts[parts.len() - 2] - ) -} - pub fn lines(fh: std::fs::File) -> impl Iterator<Item = String> { let fh = std::io::BufReader::new(fh); fh.lines().map(|res| res.unwrap()) |