From 93a3c0a932419d242677f15a0acda55bf522d579 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Sun, 1 Dec 2024 16:31:58 +0200 Subject: [PATCH] 2024 --- 2024/.gitignore | 2 + 2024/Cargo.lock | 236 ++++++++++++++++++++++++ 2024/Cargo.toml | 13 ++ 2024/daily-template/Cargo.toml | 9 + 2024/daily-template/cargo-generate.toml | 0 2024/daily-template/src/bin/part1.rs | 9 + 2024/daily-template/src/bin/part2.rs | 9 + 2024/daily-template/src/lib.rs | 2 + 2024/daily-template/src/part1.rs | 20 ++ 2024/daily-template/src/part2.rs | 20 ++ 2024/justfile | 2 + 11 files changed, 322 insertions(+) create mode 100644 2024/.gitignore create mode 100644 2024/Cargo.lock create mode 100644 2024/Cargo.toml create mode 100644 2024/daily-template/Cargo.toml create mode 100644 2024/daily-template/cargo-generate.toml create mode 100644 2024/daily-template/src/bin/part1.rs create mode 100644 2024/daily-template/src/bin/part2.rs create mode 100644 2024/daily-template/src/lib.rs create mode 100644 2024/daily-template/src/part1.rs create mode 100644 2024/daily-template/src/part2.rs create mode 100644 2024/justfile diff --git a/2024/.gitignore b/2024/.gitignore new file mode 100644 index 0000000..a00263c --- /dev/null +++ b/2024/.gitignore @@ -0,0 +1,2 @@ +/target +day-*.bench.txt diff --git a/2024/Cargo.lock b/2024/Cargo.lock new file mode 100644 index 0000000..d8f7b8f --- /dev/null +++ b/2024/Cargo.lock @@ -0,0 +1,236 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "cc" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "color-eyre" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +dependencies = [ + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", +] + +[[package]] +name = "day-01" +version = "0.1.0" +dependencies = [ + "color-eyre", +] + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.167" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-error" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" +dependencies = [ + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "sharded-slab", + "thread_local", + "tracing-core", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" diff --git a/2024/Cargo.toml b/2024/Cargo.toml new file mode 100644 index 0000000..182382b --- /dev/null +++ b/2024/Cargo.toml @@ -0,0 +1,13 @@ +[workspace] +resolver = "2" + +members = ["day-*"] + +[workspace.dependencies] +color-eyre = "0.6" +itertools = "0.13" +nom = "7.1" +nom-supreme = "0.8" +rayon = "1.8" +thiserror = "2.0" +glam = "0.29" diff --git a/2024/daily-template/Cargo.toml b/2024/daily-template/Cargo.toml new file mode 100644 index 0000000..4943452 --- /dev/null +++ b/2024/daily-template/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "{{project-name}}" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +color-eyre.workspace = true diff --git a/2024/daily-template/cargo-generate.toml b/2024/daily-template/cargo-generate.toml new file mode 100644 index 0000000..e69de29 diff --git a/2024/daily-template/src/bin/part1.rs b/2024/daily-template/src/bin/part1.rs new file mode 100644 index 0000000..27b662f --- /dev/null +++ b/2024/daily-template/src/bin/part1.rs @@ -0,0 +1,9 @@ +use color_eyre::Result; +use {{crate_name}}::part1::process; + +fn main() -> Result<()> { + let file = include_str!("../../input1.txt"); + let result = process(file)?; + println!("{}", result); + Ok(()) +} diff --git a/2024/daily-template/src/bin/part2.rs b/2024/daily-template/src/bin/part2.rs new file mode 100644 index 0000000..8d8f4de --- /dev/null +++ b/2024/daily-template/src/bin/part2.rs @@ -0,0 +1,9 @@ +use color_eyre::Result; +use {{crate_name}}::part2::process; + +fn main() -> Result<()> { + let file = include_str!("../../input2.txt"); + let result = process(file)?; + println!("{}", result); + Ok(()) +} diff --git a/2024/daily-template/src/lib.rs b/2024/daily-template/src/lib.rs new file mode 100644 index 0000000..faaf542 --- /dev/null +++ b/2024/daily-template/src/lib.rs @@ -0,0 +1,2 @@ +pub mod part1; +pub mod part2; diff --git a/2024/daily-template/src/part1.rs b/2024/daily-template/src/part1.rs new file mode 100644 index 0000000..5fef099 --- /dev/null +++ b/2024/daily-template/src/part1.rs @@ -0,0 +1,20 @@ +use color_eyre::Result; + +pub fn process(input: &str) -> Result { + todo!("day xx - part 1"); + Ok(0) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_process() -> Result<()> { + let input = ""; + todo!("haven't built test yet"); + let result = 0; + assert_eq!(process(input)?, result); + Ok(()) + } +} diff --git a/2024/daily-template/src/part2.rs b/2024/daily-template/src/part2.rs new file mode 100644 index 0000000..ed9e0bc --- /dev/null +++ b/2024/daily-template/src/part2.rs @@ -0,0 +1,20 @@ +use color_eyre::Result; + +pub fn process(input: &str) -> Result { + todo!("day xx - part 2"); + Ok(0) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_process() -> Result<()> { + let input = ""; + todo!("haven't built test yet"); + let result = 0; + assert_eq!(process(input)?, result); + Ok(()) + } +} diff --git a/2024/justfile b/2024/justfile new file mode 100644 index 0000000..3cf9b88 --- /dev/null +++ b/2024/justfile @@ -0,0 +1,2 @@ +create day: + cargo generate --path ./daily-template --name {{day}}