From f4c233aeb4e3de01808ce63c1337868ee8a817b8 Mon Sep 17 00:00:00 2001 From: FiveMovesAhead Date: Thu, 24 Apr 2025 16:36:53 +0100 Subject: [PATCH] Add clone trait and pub qualifiers to tig-challenges. --- tig-challenges/src/knapsack.rs | 12 ++++++------ tig-challenges/src/satisfiability.rs | 4 ++-- tig-challenges/src/vector_search.rs | 4 ++-- tig-challenges/src/vehicle_routing.rs | 12 ++++++------ 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tig-challenges/src/knapsack.rs b/tig-challenges/src/knapsack.rs index 376033e..b26f5f5 100644 --- a/tig-challenges/src/knapsack.rs +++ b/tig-challenges/src/knapsack.rs @@ -33,12 +33,12 @@ impl crate::DifficultyTrait<2> for Difficulty { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Solution { pub sub_solutions: Vec, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct SubSolution { pub items: Vec, } @@ -53,14 +53,14 @@ impl TryFrom> for Solution { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Challenge { pub seed: [u8; 32], pub difficulty: Difficulty, pub sub_instances: Vec, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct SubInstance { pub seed: [u8; 32], pub difficulty: Difficulty, @@ -135,7 +135,7 @@ impl crate::ChallengeTrait for Challenge { } impl SubInstance { - fn generate_instance( + pub fn generate_instance( rng: &mut SmallRng, seed: [u8; 32], difficulty: &Difficulty, @@ -335,7 +335,7 @@ impl SubInstance { }) } - fn verify_solution(&self, solution: &SubSolution) -> Result { + pub fn verify_solution(&self, solution: &SubSolution) -> Result { let selected_items: HashSet = solution.items.iter().cloned().collect(); if selected_items.len() != solution.items.len() { return Err(anyhow!("Duplicate items selected.")); diff --git a/tig-challenges/src/satisfiability.rs b/tig-challenges/src/satisfiability.rs index 532afb5..1949c82 100644 --- a/tig-challenges/src/satisfiability.rs +++ b/tig-challenges/src/satisfiability.rs @@ -41,7 +41,7 @@ impl crate::DifficultyTrait<2> for Difficulty { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Solution { #[serde(with = "bool_vec_as_u8")] pub variables: Vec, @@ -57,7 +57,7 @@ impl TryFrom> for Solution { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Challenge { pub seed: [u8; 32], pub difficulty: Difficulty, diff --git a/tig-challenges/src/vector_search.rs b/tig-challenges/src/vector_search.rs index 05f06c3..115f6bf 100644 --- a/tig-challenges/src/vector_search.rs +++ b/tig-challenges/src/vector_search.rs @@ -34,7 +34,7 @@ impl DifficultyTrait<2> for Difficulty { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Solution { pub indexes: Vec, } @@ -49,7 +49,7 @@ impl TryFrom> for Solution { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Challenge { pub seed: [u8; 32], pub difficulty: Difficulty, diff --git a/tig-challenges/src/vehicle_routing.rs b/tig-challenges/src/vehicle_routing.rs index 58b95cf..0042ea0 100644 --- a/tig-challenges/src/vehicle_routing.rs +++ b/tig-challenges/src/vehicle_routing.rs @@ -34,12 +34,12 @@ impl crate::DifficultyTrait<2> for Difficulty { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Solution { pub sub_solutions: Vec, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct SubSolution { pub routes: Vec>, } @@ -54,14 +54,14 @@ impl TryFrom> for Solution { } } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct Challenge { pub seed: [u8; 32], pub difficulty: Difficulty, pub sub_instances: Vec, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub struct SubInstance { pub seed: [u8; 32], pub difficulty: Difficulty, @@ -139,7 +139,7 @@ impl crate::ChallengeTrait for Challenge { } impl SubInstance { - fn generate_instance( + pub fn generate_instance( rng: &mut SmallRng, seed: [u8; 32], difficulty: &Difficulty, @@ -275,7 +275,7 @@ impl SubInstance { }) } - fn verify_solution(&self, solution: &SubSolution) -> Result { + pub fn verify_solution(&self, solution: &SubSolution) -> Result { if solution.routes.len() > self.fleet_size { return Err(anyhow!( "Number of routes ({}) exceeds fleet size ({})",