From 80bb1e0850027122a147d891c3b3d1436bc0e741 Mon Sep 17 00:00:00 2001 From: Joseph Chamochumbi Date: Sun, 5 Dec 2021 07:40:50 +0100 Subject: [PATCH] chore: Add more functions to rust template --- template/src/main.rs | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/template/src/main.rs b/template/src/main.rs index 3ad9ecd..5113eec 100644 --- a/template/src/main.rs +++ b/template/src/main.rs @@ -1,12 +1,5 @@ use aoc; -fn parse_num(str: &str) -> T { - match str.trim().parse::() { - Ok(n) => n, - _ => panic!("Error parsing"), - } -} - fn solve(raw: String) -> () { println!("{}", raw); } @@ -14,7 +7,41 @@ fn solve(raw: String) -> () { fn main() { let input = aoc::get_input({{year}}, {{day}}); - // let example_input = std::fs::read_to_string("").expect("Error reading input"); + // let input = std::fs::read_to_string("").expect("Error reading input"); solve(input); } + +// Utilities +#[allow(dead_code)] +fn normal(x: usize, y: usize, width: usize) -> usize { + x + y * width +} + +#[allow(dead_code)] +fn rev_normal(norm: usize, width: usize) -> (usize, usize) { + (norm % width, norm / width) +} + +#[allow(dead_code)] +fn parse_num(str: &str) -> T { + match str.trim().parse::() { + Ok(n) => n, + _ => panic!("Error parsing"), + } +} +#[allow(dead_code)] +fn to_int(bin: &str) -> u32 { + match u32::from_str_radix(bin, 2) { + Ok(n) => n, + _ => panic!("Error parsing binary to integer"), + } +} + +#[allow(dead_code)] +fn string_vec(vec: &Vec, separator: &str) -> String { + vec.iter() + .map(|x| x.to_string()) + .collect::>() + .join(separator) +}