From a43cdc4494bbae0203d15df2e8a88e8ef8e45d36 Mon Sep 17 00:00:00 2001 From: timeshifter Date: Sun, 14 Aug 2022 21:14:01 +0200 Subject: [PATCH] divide repository in src and lib --- .gitignore | 1 - lib/combination/.gitignore | 2 ++ lib/combination/Cargo.toml | 8 ++++++++ .../combination.rs => lib/combination/src/lib.rs | 0 lib/macros/.gitignore | 2 ++ lib/macros/Cargo.toml | 8 ++++++++ euler51/src/macros.rs => lib/macros/src/lib.rs | 2 ++ {euler51 => lib/primes}/Cargo.toml | 2 +- euler51/src/primes.rs => lib/primes/src/lib.rs | 0 {euler11 => src/euler11}/Cargo.toml | 0 {euler11 => src/euler11}/grid.txt | 0 {euler11 => src/euler11}/src/main.rs | 0 {euler49 => src/euler49}/Cargo.toml | 0 {euler49 => src/euler49}/src/main.rs | 0 {euler50 => src/euler50}/Cargo.toml | 0 {euler50 => src/euler50}/src/main.rs | 0 src/euler51/Cargo.toml | 10 ++++++++++ src/euler51/src/macros.rs | 0 {euler51 => src/euler51}/src/main.rs | 16 ++++++++-------- 19 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 lib/combination/.gitignore create mode 100644 lib/combination/Cargo.toml rename euler51/src/combination.rs => lib/combination/src/lib.rs (100%) create mode 100644 lib/macros/.gitignore create mode 100644 lib/macros/Cargo.toml rename euler51/src/macros.rs => lib/macros/src/lib.rs (79%) rename {euler51 => lib/primes}/Cargo.toml (90%) rename euler51/src/primes.rs => lib/primes/src/lib.rs (100%) rename {euler11 => src/euler11}/Cargo.toml (100%) rename {euler11 => src/euler11}/grid.txt (100%) rename {euler11 => src/euler11}/src/main.rs (100%) rename {euler49 => src/euler49}/Cargo.toml (100%) rename {euler49 => src/euler49}/src/main.rs (100%) rename {euler50 => src/euler50}/Cargo.toml (100%) rename {euler50 => src/euler50}/src/main.rs (100%) create mode 100644 src/euler51/Cargo.toml create mode 100644 src/euler51/src/macros.rs rename {euler51 => src/euler51}/src/main.rs (94%) diff --git a/.gitignore b/.gitignore index 7e0deae..c66f9e0 100644 --- a/.gitignore +++ b/.gitignore @@ -131,7 +131,6 @@ dist/ downloads/ eggs/ .eggs/ -lib/ lib64/ parts/ sdist/ diff --git a/lib/combination/.gitignore b/lib/combination/.gitignore new file mode 100644 index 0000000..4fffb2f --- /dev/null +++ b/lib/combination/.gitignore @@ -0,0 +1,2 @@ +/target +/Cargo.lock diff --git a/lib/combination/Cargo.toml b/lib/combination/Cargo.toml new file mode 100644 index 0000000..59b1f60 --- /dev/null +++ b/lib/combination/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "combination" +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/euler51/src/combination.rs b/lib/combination/src/lib.rs similarity index 100% rename from euler51/src/combination.rs rename to lib/combination/src/lib.rs diff --git a/lib/macros/.gitignore b/lib/macros/.gitignore new file mode 100644 index 0000000..4fffb2f --- /dev/null +++ b/lib/macros/.gitignore @@ -0,0 +1,2 @@ +/target +/Cargo.lock diff --git a/lib/macros/Cargo.toml b/lib/macros/Cargo.toml new file mode 100644 index 0000000..7be6c02 --- /dev/null +++ b/lib/macros/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "macros" +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/euler51/src/macros.rs b/lib/macros/src/lib.rs similarity index 79% rename from euler51/src/macros.rs rename to lib/macros/src/lib.rs index aa57676..ea209ae 100644 --- a/euler51/src/macros.rs +++ b/lib/macros/src/lib.rs @@ -1,3 +1,5 @@ +#[allow(unused_macros)] + macro_rules! dbg_println { ($($arg:tt)*) => (#[cfg(debug_assertions)] println!($($arg)*)); } diff --git a/euler51/Cargo.toml b/lib/primes/Cargo.toml similarity index 90% rename from euler51/Cargo.toml rename to lib/primes/Cargo.toml index ecc6b28..4a8f4d3 100644 --- a/euler51/Cargo.toml +++ b/lib/primes/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "euler51" +name = "primes" version = "0.1.0" edition = "2021" diff --git a/euler51/src/primes.rs b/lib/primes/src/lib.rs similarity index 100% rename from euler51/src/primes.rs rename to lib/primes/src/lib.rs diff --git a/euler11/Cargo.toml b/src/euler11/Cargo.toml similarity index 100% rename from euler11/Cargo.toml rename to src/euler11/Cargo.toml diff --git a/euler11/grid.txt b/src/euler11/grid.txt similarity index 100% rename from euler11/grid.txt rename to src/euler11/grid.txt diff --git a/euler11/src/main.rs b/src/euler11/src/main.rs similarity index 100% rename from euler11/src/main.rs rename to src/euler11/src/main.rs diff --git a/euler49/Cargo.toml b/src/euler49/Cargo.toml similarity index 100% rename from euler49/Cargo.toml rename to src/euler49/Cargo.toml diff --git a/euler49/src/main.rs b/src/euler49/src/main.rs similarity index 100% rename from euler49/src/main.rs rename to src/euler49/src/main.rs diff --git a/euler50/Cargo.toml b/src/euler50/Cargo.toml similarity index 100% rename from euler50/Cargo.toml rename to src/euler50/Cargo.toml diff --git a/euler50/src/main.rs b/src/euler50/src/main.rs similarity index 100% rename from euler50/src/main.rs rename to src/euler50/src/main.rs diff --git a/src/euler51/Cargo.toml b/src/euler51/Cargo.toml new file mode 100644 index 0000000..69cc7b0 --- /dev/null +++ b/src/euler51/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "euler51" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +primes = {version = "*", path = "../../lib/primes"} +combination = {version = "*", path = "../../lib/combination"} diff --git a/src/euler51/src/macros.rs b/src/euler51/src/macros.rs new file mode 100644 index 0000000..e69de29 diff --git a/euler51/src/main.rs b/src/euler51/src/main.rs similarity index 94% rename from euler51/src/main.rs rename to src/euler51/src/main.rs index c8c7530..f440b42 100644 --- a/euler51/src/main.rs +++ b/src/euler51/src/main.rs @@ -1,11 +1,8 @@ -mod combination; -mod primes; +extern crate combination; +extern crate primes; -#[macro_use] -mod macros; - -use crate::combination::{PositionCombinations, ToString}; -use crate::primes::Primes; +use combination::PositionCombinations; +use primes::Primes; type Int = u64; @@ -40,7 +37,6 @@ fn main() { let all_primes = Primes::get_between(MIN_VALUE, MAX_VALUE); let mut best_of_all_combinations = vec![]; for pattern in PositionCombinations::new(MIN_LENGTH, MAX_LENGTH, LENGTH) { - dbg_println!("{}", pattern.to_string()); let mut best_this_combination = vec![]; let mut primes_to_check = all_primes.clone(); while let Some(first) = primes_to_check.pop() { @@ -80,6 +76,10 @@ fn get_longest(mut vec: Vec>, print: bool) -> Vec { vec.into_iter().find(|v| v.len() == length).unwrap() } +trait ToString { + fn to_string(&self) -> String; +} + impl ToString for Vec { fn to_string(&self) -> String { self.iter().map(|d| d.to_string()).collect()