From 4d2da4cb8d1ccee997ac851fb830d3840e8aabe5 Mon Sep 17 00:00:00 2001 From: "Dr. Matthias Ratajczak" Date: Thu, 2 Feb 2023 14:40:58 +0100 Subject: [PATCH] refactor review module --- src/review/mod.rs | 36 ------------------------------------ src/review/strategy.rs | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/review/mod.rs b/src/review/mod.rs index 638fc4b..8f924cf 100644 --- a/src/review/mod.rs +++ b/src/review/mod.rs @@ -132,39 +132,3 @@ fn ask_group(groups: &[Rc]) -> Result>> { Ok(None) } } -impl From for Vec { - fn from(reviews: ReviewsPerBackend) -> Self { - let mut result = vec![]; - - for (backend, actions) in reviews.0 { - let (to_delete, assign_group, as_dependency) = divide_actions(actions); - - result.push(Strategy::new( - backend, - to_delete, - as_dependency, - assign_group, - )); - } - - result - } -} - -fn divide_actions( - actions: Vec, -) -> (Vec, Vec<(Package, Rc)>, Vec) { - let mut to_delete = vec![]; - let mut assign_group = vec![]; - let mut as_dependency = vec![]; - - for action in actions { - match action { - ReviewAction::Delete(package) => to_delete.push(package), - ReviewAction::AssignGroup(package, group) => assign_group.push((package, group)), - ReviewAction::AsDependency(package) => as_dependency.push(package), - } - } - - (to_delete, assign_group, as_dependency) -} diff --git a/src/review/strategy.rs b/src/review/strategy.rs index a1ba88d..06d0523 100644 --- a/src/review/strategy.rs +++ b/src/review/strategy.rs @@ -5,6 +5,8 @@ use anyhow::Result; use crate::backend::Backend; use crate::{Group, Package}; +use super::datastructures::{ReviewAction, ReviewsPerBackend}; + #[derive(Debug)] pub(super) struct Strategy { backend: Box, @@ -77,3 +79,40 @@ impl Strategy { self.delete.is_empty() && self.as_dependency.is_empty() && self.assign_group.is_empty() } } + +impl From for Vec { + fn from(reviews: ReviewsPerBackend) -> Self { + let mut result = vec![]; + + for (backend, actions) in reviews.0 { + let (to_delete, assign_group, as_dependency) = divide_actions(actions); + + result.push(Strategy::new( + backend, + to_delete, + as_dependency, + assign_group, + )); + } + + result + } +} + +fn divide_actions( + actions: Vec, +) -> (Vec, Vec<(Package, Rc)>, Vec) { + let mut to_delete = vec![]; + let mut assign_group = vec![]; + let mut as_dependency = vec![]; + + for action in actions { + match action { + ReviewAction::Delete(package) => to_delete.push(package), + ReviewAction::AssignGroup(package, group) => assign_group.push((package, group)), + ReviewAction::AsDependency(package) => as_dependency.push(package), + } + } + + (to_delete, assign_group, as_dependency) +}