diff options
Diffstat (limited to '2023/day-03/src/main.rs')
-rw-r--r-- | 2023/day-03/src/main.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/2023/day-03/src/main.rs b/2023/day-03/src/main.rs new file mode 100644 index 0000000..43891cd --- /dev/null +++ b/2023/day-03/src/main.rs @@ -0,0 +1,38 @@ +#[derive(Debug)] +struct Number { + position: (usize, usize), + string: String, +} + +impl Number { +} + +fn main() { + let input = include_str!("./sample.txt"); + let v: Vec<Number> = input.lines() + .map(|line: &str| { + let numbers: Vec<&str> = line + .split(|c: char| { !c.is_alphanumeric() }) + .filter(|v| { v.len() > 0 }) + .collect(); + numbers.iter().enumerate().map(|(idx, number)| { + line.match_indices(number).map(|(pos, string)| -> &mut Number { + &mut Number { + position: (idx, pos), + string: String::from(string), + } + }).collect() + }).collect() + }) + .fold(vec!(), |acc: Vec<Number>, e| { acc.append(e) }); + dbg!(v); +} + +#[cfg(test)] +mod test { + use super::*; + + fn test_input() { + let _input = include_str!("./sample.txt"); + } +} |