aboutsummaryrefslogtreecommitdiff
path: root/2023/day-03/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to '2023/day-03/src/main.rs')
-rw-r--r--2023/day-03/src/main.rs38
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");
+ }
+}