summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2023-12-01 14:09:19 -0600
committerToby Vincent <tobyv@tobyvin.dev>2023-12-01 14:09:44 -0600
commit54048d9070f75c23226b0684b519861ec0025022 (patch)
treef65126ad95bf9415da74dc3b96b755ae37ea0bd6
parent995b60bce97b11cf0ca6de1d068b40aafcf5d6de (diff)
refactor: move to single year per repoHEADmain
-rw-r--r--Cargo.lock159
-rw-r--r--Cargo.toml17
-rw-r--r--aoc_2022/Cargo.lock23
-rw-r--r--aoc_2022/Cargo.toml15
-rw-r--r--aoc_2022/src/lib.rs18
-rw-r--r--input/day_1.txt (renamed from aoc_2022/input/day_1.txt)0
-rw-r--r--input/day_10.txt (renamed from aoc_2022/input/day_10.txt)0
-rw-r--r--input/day_10_example.txt (renamed from aoc_2022/input/day_10_example.txt)0
-rw-r--r--input/day_11.txt (renamed from aoc_2022/input/day_11.txt)0
-rw-r--r--input/day_11_example.txt (renamed from aoc_2022/input/day_11_example.txt)0
-rw-r--r--input/day_12.txt (renamed from aoc_2022/input/day_12.txt)0
-rw-r--r--input/day_2.txt (renamed from aoc_2022/input/day_2.txt)0
-rw-r--r--input/day_3.txt (renamed from aoc_2022/input/day_3.txt)0
-rw-r--r--input/day_4.txt (renamed from aoc_2022/input/day_4.txt)0
-rw-r--r--input/day_5.txt (renamed from aoc_2022/input/day_5.txt)0
-rw-r--r--input/day_6.txt (renamed from aoc_2022/input/day_6.txt)0
-rw-r--r--input/day_7.txt (renamed from aoc_2022/input/day_7.txt)0
-rw-r--r--input/day_8.txt (renamed from aoc_2022/input/day_8.txt)0
-rw-r--r--input/day_9.txt (renamed from aoc_2022/input/day_9.txt)0
-rw-r--r--src/day_01.rs (renamed from aoc_2022/src/day_01.rs)2
-rw-r--r--src/day_02.rs (renamed from aoc_2022/src/day_02.rs)2
-rw-r--r--src/day_03.rs (renamed from aoc_2022/src/day_03.rs)2
-rw-r--r--src/day_04.rs (renamed from aoc_2022/src/day_04.rs)2
-rw-r--r--src/day_05.rs (renamed from aoc_2022/src/day_05.rs)2
-rw-r--r--src/day_06.rs (renamed from aoc_2022/src/day_06.rs)2
-rw-r--r--src/day_07.rs (renamed from aoc_2022/src/day_07.rs)2
-rw-r--r--src/day_08.rs (renamed from aoc_2022/src/day_08.rs)2
-rw-r--r--src/day_09.rs (renamed from aoc_2022/src/day_09.rs)2
-rw-r--r--src/day_10.rs (renamed from aoc_2022/src/day_10.rs)2
-rw-r--r--src/day_11.rs (renamed from aoc_2022/src/day_11.rs)2
-rw-r--r--src/day_12.rs (renamed from aoc_2022/src/day_12.rs)2
-rw-r--r--src/lib.rs17
-rw-r--r--src/main.rs (renamed from aoc_2022/src/main.rs)2
33 files changed, 86 insertions, 189 deletions
diff --git a/Cargo.lock b/Cargo.lock
index e2d892b..5293a10 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -9,19 +9,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
[[package]]
-name = "aoc"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "indoc",
-]
-
-[[package]]
name = "aoc_2022"
version = "0.1.0"
dependencies = [
"anyhow",
- "aoc",
"crossterm",
"indoc",
"pretty_assertions",
@@ -63,24 +54,14 @@ dependencies = [
[[package]]
name = "crossterm_winapi"
-version = "0.9.0"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
dependencies = [
"winapi",
]
[[package]]
-name = "ctor"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
-dependencies = [
- "quote",
- "syn",
-]
-
-[[package]]
name = "diff"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -94,15 +75,15 @@ checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3"
[[package]]
name = "libc"
-version = "0.2.138"
+version = "0.2.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
[[package]]
name = "lock_api"
-version = "0.4.9"
+version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
dependencies = [
"autocfg",
"scopeguard",
@@ -110,18 +91,15 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.17"
+version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
[[package]]
name = "mio"
-version = "0.8.5"
+version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
dependencies = [
"libc",
"log",
@@ -130,15 +108,6 @@ dependencies = [
]
[[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
-
-[[package]]
name = "parking_lot"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -150,67 +119,47 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.5"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"smallvec",
- "windows-sys",
+ "windows-targets",
]
[[package]]
name = "pretty_assertions"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
dependencies = [
- "ctor",
"diff",
- "output_vt100",
"yansi",
]
[[package]]
-name = "proc-macro2"
-version = "1.0.47"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
name = "redox_syscall"
-version = "0.2.16"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
dependencies = [
"bitflags",
]
[[package]]
name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "signal-hook"
-version = "0.3.14"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
dependencies = [
"libc",
"signal-hook-registry",
@@ -229,35 +178,18 @@ dependencies = [
[[package]]
name = "signal-hook-registry"
-version = "1.4.0"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
dependencies = [
"libc",
]
[[package]]
name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "syn"
-version = "1.0.105"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.5"
+version = "1.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
[[package]]
name = "wasi"
@@ -289,9 +221,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
-version = "0.42.0"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
@@ -304,45 +245,45 @@ dependencies = [
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.42.0"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.42.0"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_i686_gnu"
-version = "0.42.0"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_msvc"
-version = "0.42.0"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.42.0"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.42.0"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.42.0"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "yansi"
diff --git a/Cargo.toml b/Cargo.toml
index 99130fe..0c896ad 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,20 +1,15 @@
[package]
-name = "aoc"
+name = "aoc_2022"
version = "0.1.0"
edition = "2021"
description = "Library used for Advent of Code solution crates"
-[dependencies]
-anyhow.workspace = true
-indoc.workspace = true
-
-[workspace]
-members = ["aoc_2022"]
-default-members = ["aoc_2022"]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-[workspace.dependencies]
-aoc = { path = "." }
+[dependencies]
anyhow = "1.0.66"
indoc = "1.0.7"
-pretty_assertions = "1.3.0"
crossterm = "0.25.0"
+
+[dev-dependencies]
+pretty_assertions = "1.3.0"
diff --git a/aoc_2022/Cargo.lock b/aoc_2022/Cargo.lock
deleted file mode 100644
index 2823f71..0000000
--- a/aoc_2022/Cargo.lock
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "advent_of_code_2022"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "indoc",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
-
-[[package]]
-name = "indoc"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3"
diff --git a/aoc_2022/Cargo.toml b/aoc_2022/Cargo.toml
deleted file mode 100644
index 8cf5165..0000000
--- a/aoc_2022/Cargo.toml
+++ /dev/null
@@ -1,15 +0,0 @@
-[package]
-name = "aoc_2022"
-version = "0.1.0"
-edition = "2021"
-
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
-[dependencies]
-aoc.workspace = true
-anyhow.workspace = true
-indoc.workspace = true
-crossterm.workspace = true
-
-[dev-dependencies]
-pretty_assertions.workspace = true
diff --git a/aoc_2022/src/lib.rs b/aoc_2022/src/lib.rs
deleted file mode 100644
index d28980b..0000000
--- a/aoc_2022/src/lib.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-#![feature(iterator_try_collect)]
-#![feature(iter_next_chunk)]
-#![feature(is_some_and)]
-#![feature(if_let_guard)]
-#![feature(map_try_insert)]
-
-pub mod day_01;
-pub mod day_02;
-pub mod day_03;
-pub mod day_04;
-pub mod day_05;
-pub mod day_06;
-pub mod day_07;
-pub mod day_08;
-pub mod day_09;
-pub mod day_10;
-pub mod day_11;
-pub mod day_12;
diff --git a/aoc_2022/input/day_1.txt b/input/day_1.txt
index e329ff7..e329ff7 100644
--- a/aoc_2022/input/day_1.txt
+++ b/input/day_1.txt
diff --git a/aoc_2022/input/day_10.txt b/input/day_10.txt
index c26a664..c26a664 100644
--- a/aoc_2022/input/day_10.txt
+++ b/input/day_10.txt
diff --git a/aoc_2022/input/day_10_example.txt b/input/day_10_example.txt
index 2bb94df..2bb94df 100644
--- a/aoc_2022/input/day_10_example.txt
+++ b/input/day_10_example.txt
diff --git a/aoc_2022/input/day_11.txt b/input/day_11.txt
index c567cb6..c567cb6 100644
--- a/aoc_2022/input/day_11.txt
+++ b/input/day_11.txt
diff --git a/aoc_2022/input/day_11_example.txt b/input/day_11_example.txt
index 30e09e5..30e09e5 100644
--- a/aoc_2022/input/day_11_example.txt
+++ b/input/day_11_example.txt
diff --git a/aoc_2022/input/day_12.txt b/input/day_12.txt
index 2e8d203..2e8d203 100644
--- a/aoc_2022/input/day_12.txt
+++ b/input/day_12.txt
diff --git a/aoc_2022/input/day_2.txt b/input/day_2.txt
index 787ae71..787ae71 100644
--- a/aoc_2022/input/day_2.txt
+++ b/input/day_2.txt
diff --git a/aoc_2022/input/day_3.txt b/input/day_3.txt
index 5533a94..5533a94 100644
--- a/aoc_2022/input/day_3.txt
+++ b/input/day_3.txt
diff --git a/aoc_2022/input/day_4.txt b/input/day_4.txt
index c2c3af1..c2c3af1 100644
--- a/aoc_2022/input/day_4.txt
+++ b/input/day_4.txt
diff --git a/aoc_2022/input/day_5.txt b/input/day_5.txt
index 922b345..922b345 100644
--- a/aoc_2022/input/day_5.txt
+++ b/input/day_5.txt
diff --git a/aoc_2022/input/day_6.txt b/input/day_6.txt
index 5f190e2..5f190e2 100644
--- a/aoc_2022/input/day_6.txt
+++ b/input/day_6.txt
diff --git a/aoc_2022/input/day_7.txt b/input/day_7.txt
index ca23499..ca23499 100644
--- a/aoc_2022/input/day_7.txt
+++ b/input/day_7.txt
diff --git a/aoc_2022/input/day_8.txt b/input/day_8.txt
index 8f78128..8f78128 100644
--- a/aoc_2022/input/day_8.txt
+++ b/input/day_8.txt
diff --git a/aoc_2022/input/day_9.txt b/input/day_9.txt
index d5e15df..d5e15df 100644
--- a/aoc_2022/input/day_9.txt
+++ b/input/day_9.txt
diff --git a/aoc_2022/src/day_01.rs b/src/day_01.rs
index b15e9ba..72c90a2 100644
--- a/aoc_2022/src/day_01.rs
+++ b/src/day_01.rs
@@ -1,6 +1,6 @@
use anyhow::{Context, Result};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
pub struct Day01;
diff --git a/aoc_2022/src/day_02.rs b/src/day_02.rs
index 07ac1f9..a27fbc8 100644
--- a/aoc_2022/src/day_02.rs
+++ b/src/day_02.rs
@@ -2,7 +2,7 @@ use std::str::FromStr;
use anyhow::{anyhow, Result};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
struct Game {
diff --git a/aoc_2022/src/day_03.rs b/src/day_03.rs
index d9e2f53..da54daa 100644
--- a/aoc_2022/src/day_03.rs
+++ b/src/day_03.rs
@@ -2,7 +2,7 @@ use std::{ops::Deref, str::FromStr};
use anyhow::{anyhow, Context, Result};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
trait Priority {
fn priority(self) -> Result<u8>;
diff --git a/aoc_2022/src/day_04.rs b/src/day_04.rs
index 0ec0583..95dd95c 100644
--- a/aoc_2022/src/day_04.rs
+++ b/src/day_04.rs
@@ -2,7 +2,7 @@ use std::ops::Range;
use anyhow::Result;
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
pub fn parse_range(section: &str) -> Result<Range<usize>> {
let (start, end) = section.split_once('-').unwrap();
diff --git a/aoc_2022/src/day_05.rs b/src/day_05.rs
index 6782d35..75ebdff 100644
--- a/aoc_2022/src/day_05.rs
+++ b/src/day_05.rs
@@ -6,7 +6,7 @@ use std::{
use anyhow::{Context, Result};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
#[derive(Debug)]
struct Procedure(Vec<Step>);
diff --git a/aoc_2022/src/day_06.rs b/src/day_06.rs
index 3961329..4bd6ed8 100644
--- a/aoc_2022/src/day_06.rs
+++ b/src/day_06.rs
@@ -2,7 +2,7 @@ use std::collections::HashSet;
use anyhow::Result;
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
fn get_window_pos(input: &str, win_size: usize) -> Option<usize> {
input
diff --git a/aoc_2022/src/day_07.rs b/src/day_07.rs
index 21dceae..b8eb376 100644
--- a/aoc_2022/src/day_07.rs
+++ b/src/day_07.rs
@@ -2,7 +2,7 @@ use std::{collections::HashMap, fmt::Display, ops::Deref, str::FromStr};
use anyhow::{anyhow, Context, Result};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
enum Cmd {
Root,
diff --git a/aoc_2022/src/day_08.rs b/src/day_08.rs
index 17b49f5..d3412bf 100644
--- a/aoc_2022/src/day_08.rs
+++ b/src/day_08.rs
@@ -2,7 +2,7 @@ use std::{collections::HashSet, fmt::Display};
use anyhow::Result;
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
type TreeHeight = i8;
diff --git a/aoc_2022/src/day_09.rs b/src/day_09.rs
index 7d9e55b..d73a93d 100644
--- a/aoc_2022/src/day_09.rs
+++ b/src/day_09.rs
@@ -1,6 +1,6 @@
use std::{cmp::Ordering, collections::HashSet, fmt::Display, str::FromStr};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
type Unit = isize;
type Position = (Unit, Unit);
diff --git a/aoc_2022/src/day_10.rs b/src/day_10.rs
index 9c5179d..9b985ef 100644
--- a/aoc_2022/src/day_10.rs
+++ b/src/day_10.rs
@@ -1,6 +1,6 @@
use std::{fmt::Display, str::FromStr};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
enum Instruction {
Addx(isize),
diff --git a/aoc_2022/src/day_11.rs b/src/day_11.rs
index 6741385..5fd09de 100644
--- a/aoc_2022/src/day_11.rs
+++ b/src/day_11.rs
@@ -1,7 +1,7 @@
use std::{fmt::Display, str::FromStr};
use anyhow::{anyhow, Context};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
use self::{Operator::*, Token::*};
diff --git a/aoc_2022/src/day_12.rs b/src/day_12.rs
index 65baca3..cf0dd98 100644
--- a/aoc_2022/src/day_12.rs
+++ b/src/day_12.rs
@@ -1,5 +1,5 @@
use anyhow::{Context, Result};
-use aoc::{Problem, Solution};
+use crate::{Problem, Solution};
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::{
cmp::Reverse,
diff --git a/src/lib.rs b/src/lib.rs
index 39d7495..1931045 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,5 +1,22 @@
+#![feature(iterator_try_collect)]
+#![feature(iter_next_chunk)]
+#![feature(if_let_guard)]
+#![feature(map_try_insert)]
#![feature(associated_type_defaults)]
+pub mod day_01;
+pub mod day_02;
+pub mod day_03;
+pub mod day_04;
+pub mod day_05;
+pub mod day_06;
+pub mod day_07;
+pub mod day_08;
+pub mod day_09;
+pub mod day_10;
+pub mod day_11;
+pub mod day_12;
+
pub trait Solution: Problem {
type Answer1: std::fmt::Display + Default = String;
diff --git a/aoc_2022/src/main.rs b/src/main.rs
index 132133f..4547467 100644
--- a/aoc_2022/src/main.rs
+++ b/src/main.rs
@@ -1,8 +1,8 @@
use anyhow::Result;
-use aoc::Solution;
use aoc_2022::{
day_01::Day01, day_02::Day02, day_03::Day03, day_04::Day04, day_05::Day05, day_06::Day06,
day_07::Day07, day_08::Day08, day_09::Day09, day_10::Day10, day_11::Day11, day_12::Day12,
+ Solution,
};
fn main() -> Result<()> {