From 9f27d43154dd559e093be8d02524ff1da7391431 Mon Sep 17 00:00:00 2001 From: Ben Kyd Date: Thu, 15 Dec 2022 00:24:12 +0000 Subject: [PATCH] pivot to rust --- .gitignore | 1 + 2022/rs/14.input | 2 ++ 2022/rs/Cargo.lock | 7 +++++++ 2022/rs/Cargo.toml | 8 ++++++++ 2022/rs/src/day_14.rs | 32 ++++++++++++++++++++++++++++++++ 2022/rs/src/main.rs | 8 ++++++++ 6 files changed, 58 insertions(+) create mode 100644 2022/rs/14.input create mode 100644 2022/rs/Cargo.lock create mode 100644 2022/rs/Cargo.toml create mode 100644 2022/rs/src/day_14.rs create mode 100644 2022/rs/src/main.rs diff --git a/.gitignore b/.gitignore index 25e240f..efd80a2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .exe/ .o/ *.o +*target/ diff --git a/2022/rs/14.input b/2022/rs/14.input new file mode 100644 index 0000000..1926028 --- /dev/null +++ b/2022/rs/14.input @@ -0,0 +1,2 @@ +498,4 -> 498,6 -> 496,6 +503,4 -> 502,4 -> 502,9 -> 494,9 \ No newline at end of file diff --git a/2022/rs/Cargo.lock b/2022/rs/Cargo.lock new file mode 100644 index 0000000..c6f3efc --- /dev/null +++ b/2022/rs/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rs" +version = "0.1.0" diff --git a/2022/rs/Cargo.toml b/2022/rs/Cargo.toml new file mode 100644 index 0000000..f662eb1 --- /dev/null +++ b/2022/rs/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "rs" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2022/rs/src/day_14.rs b/2022/rs/src/day_14.rs new file mode 100644 index 0000000..5c9801c --- /dev/null +++ b/2022/rs/src/day_14.rs @@ -0,0 +1,32 @@ +use std::collections::HashMap; + +const CHALLENGE_INPUT: &str = include_str!("../14.input"); +const EXAMPLE_INPUT: &str = "498,4 -> 498,6 -> 496,6\n503,4 -> 502,4 -> 502,9 -> 494,9"; + +enum Tile { + Foreground, + Background, + Sand, +} + +struct Map { + min_x: i32, + max_x: i32, + min_y: i32, + max_y: i32, + tiles: HashMap<(i32, i32), Tile>, +} + +pub fn part_1() -> &'static str { + return EXAMPLE_INPUT; +} + +#[cfg(test)] +mod test { + use crate::day_14; + + #[test] + fn part1_test() { + assert_eq!(day_14::part_1(), day_14::EXAMPLE_INPUT); + } +} diff --git a/2022/rs/src/main.rs b/2022/rs/src/main.rs new file mode 100644 index 0000000..d869578 --- /dev/null +++ b/2022/rs/src/main.rs @@ -0,0 +1,8 @@ +#![allow(dead_code)] +#![allow(unused_variables)] + +mod day_14; + +fn main() { + day_14::part_1(); +}