diff options
Diffstat (limited to 'crates/shirabe/src/command')
| -rw-r--r-- | crates/shirabe/src/command/archive_command.rs | 10 | ||||
| -rw-r--r-- | crates/shirabe/src/command/base_dependency_command.rs | 10 | ||||
| -rw-r--r-- | crates/shirabe/src/command/check_platform_reqs_command.rs | 23 | ||||
| -rw-r--r-- | crates/shirabe/src/command/fund_command.rs | 7 | ||||
| -rw-r--r-- | crates/shirabe/src/command/package_discovery_trait.rs | 9 | ||||
| -rw-r--r-- | crates/shirabe/src/command/show_command.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe/src/command/update_command.rs | 7 |
7 files changed, 34 insertions, 38 deletions
diff --git a/crates/shirabe/src/command/archive_command.rs b/crates/shirabe/src/command/archive_command.rs index c88b47b..0813df6 100644 --- a/crates/shirabe/src/command/archive_command.rs +++ b/crates/shirabe/src/command/archive_command.rs @@ -305,11 +305,11 @@ impl ArchiveCommand { ); repo_set.add_repository(Box::new(repo))?; let parser = VersionParser::new(); - let constraint: Option<Box<dyn shirabe_semver::constraint::ConstraintInterface>> = - match version.as_deref() { - Some(v) => Some(parser.parse_constraints(v)?.clone_box()), - None => None, - }; + let constraint: Option<shirabe_semver::constraint::AnyConstraint> = match version.as_deref() + { + Some(v) => Some(parser.parse_constraints(v)?.clone()), + None => None, + }; let packages = repo_set.find_packages(&package_name.to_lowercase(), constraint, 0); let package = if packages.len() > 1 { diff --git a/crates/shirabe/src/command/base_dependency_command.rs b/crates/shirabe/src/command/base_dependency_command.rs index 498c589..f1ff863 100644 --- a/crates/shirabe/src/command/base_dependency_command.rs +++ b/crates/shirabe/src/command/base_dependency_command.rs @@ -6,8 +6,8 @@ use shirabe_external_packages::symfony::component::console::input::InputInterfac use shirabe_external_packages::symfony::component::console::output::OutputInterface; use shirabe_external_packages::symfony::console::formatter::OutputFormatter; use shirabe_php_shim::{InvalidArgumentException, PhpMixed, UnexpectedValueException}; +use shirabe_semver::constraint::AnyConstraint; use shirabe_semver::constraint::Bound; -use shirabe_semver::constraint::ConstraintInterface; use crate::command::{BaseCommand, BaseCommandData, HasBaseCommandData}; use crate::package::CompletePackageInterface; @@ -225,13 +225,9 @@ pub trait BaseDependencyCommand: BaseCommand { } let has_constraint = text_constraint != "*"; - let constraint: Option<Box<dyn ConstraintInterface>> = if has_constraint { + let constraint: Option<AnyConstraint> = if has_constraint { let version_parser = VersionParser::new(); - Some( - version_parser - .parse_constraints(&text_constraint)? - .clone_box(), - ) + Some(version_parser.parse_constraints(&text_constraint)?.clone()) } else { None }; diff --git a/crates/shirabe/src/command/check_platform_reqs_command.rs b/crates/shirabe/src/command/check_platform_reqs_command.rs index 83770be..74ecfc3 100644 --- a/crates/shirabe/src/command/check_platform_reqs_command.rs +++ b/crates/shirabe/src/command/check_platform_reqs_command.rs @@ -5,8 +5,8 @@ use indexmap::IndexMap; use shirabe_external_packages::symfony::component::console::input::InputInterface; use shirabe_external_packages::symfony::component::console::output::OutputInterface; use shirabe_php_shim::{PhpMixed, strip_tags}; -use shirabe_semver::constraint::Constraint; -use shirabe_semver::constraint::ConstraintInterface; +use shirabe_semver::constraint::AnyConstraint; +use shirabe_semver::constraint::SimpleConstraint; use crate::command::{BaseCommand, BaseCommandData, HasBaseCommandData}; use crate::console::input::InputOption; @@ -147,22 +147,23 @@ impl CheckPlatformReqsCommand { if !candidates.is_empty() { let mut req_results: Vec<CheckResult> = vec![]; 'candidates: for candidate in &candidates { - let candidate_constraint: Option<Box<dyn ConstraintInterface>> = + let candidate_constraint: Option<AnyConstraint> = if candidate.get_name() == require { - let mut c = Constraint::new("=", candidate.get_version()); - c.set_pretty_string(Some( - candidate.get_pretty_version().to_string(), - )); - Some(Box::new(c)) + let c = SimpleConstraint::new( + "=".to_string(), + candidate.get_version().to_string(), + Some(candidate.get_pretty_version().to_string()), + ); + Some(c.into()) } else { - let mut found: Option<Box<dyn ConstraintInterface>> = None; + let mut found: Option<AnyConstraint> = None; for (_, link) in candidate .get_provides() .iter() .chain(candidate.get_replaces().iter()) { if link.get_target() == require { - found = Some(link.get_constraint().clone_box()); + found = Some(link.get_constraint().clone()); break; } } @@ -175,7 +176,7 @@ impl CheckPlatformReqsCommand { }; for link in links { - if !link.get_constraint().matches(&*candidate_constraint) { + if !link.get_constraint().matches(&candidate_constraint) { req_results.push(CheckResult { platform_package: if candidate.get_name() == require { candidate.get_pretty_name().to_string() diff --git a/crates/shirabe/src/command/fund_command.rs b/crates/shirabe/src/command/fund_command.rs index 233eeaa..82c0c0a 100644 --- a/crates/shirabe/src/command/fund_command.rs +++ b/crates/shirabe/src/command/fund_command.rs @@ -9,7 +9,7 @@ use shirabe_external_packages::symfony::component::console::input::InputInterfac use shirabe_external_packages::symfony::component::console::output::OutputInterface; use shirabe_external_packages::symfony::console::formatter::OutputFormatter; use shirabe_php_shim::PhpMixed; -use shirabe_semver::constraint::ConstraintInterface; +use shirabe_semver::constraint::AnyConstraint; use shirabe_semver::constraint::MatchAllConstraint; use crate::command::{BaseCommand, BaseCommandData, HasBaseCommandData}; @@ -64,8 +64,7 @@ impl FundCommand { ); let mut fundings: IndexMap<String, IndexMap<String, Vec<String>>> = IndexMap::new(); - let mut packages_to_load: IndexMap<String, Option<Box<dyn ConstraintInterface>>> = - IndexMap::new(); + let mut packages_to_load: IndexMap<String, Option<AnyConstraint>> = IndexMap::new(); let mut packages_to_load_names: indexmap::IndexSet<String> = indexmap::IndexSet::new(); for package in repo.get_packages() { if package.as_any().downcast_ref::<AliasPackage>().is_some() { @@ -73,7 +72,7 @@ impl FundCommand { } packages_to_load.insert( package.get_name().to_string(), - Some(Box::new(MatchAllConstraint::new())), + Some(MatchAllConstraint::new(None).into()), ); packages_to_load_names.insert(package.get_name().to_string()); } diff --git a/crates/shirabe/src/command/package_discovery_trait.rs b/crates/shirabe/src/command/package_discovery_trait.rs index 43d6ee8..fa25fa3 100644 --- a/crates/shirabe/src/command/package_discovery_trait.rs +++ b/crates/shirabe/src/command/package_discovery_trait.rs @@ -880,9 +880,12 @@ pub trait PackageDiscoveryTrait { }; if !link .get_constraint() - .matches(&shirabe_semver::constraint::Constraint::new( - "==", - platform_pkg.get_version(), + .matches(&shirabe_semver::constraint::AnyConstraint::Simple( + shirabe_semver::constraint::SimpleConstraint::new( + "==".to_string(), + platform_pkg.get_version().to_string(), + None, + ), )) { let mut platform_pkg_version = platform_pkg.get_pretty_version().to_string(); diff --git a/crates/shirabe/src/command/show_command.rs b/crates/shirabe/src/command/show_command.rs index 3eac2df..8826421 100644 --- a/crates/shirabe/src/command/show_command.rs +++ b/crates/shirabe/src/command/show_command.rs @@ -13,7 +13,7 @@ use shirabe_php_shim::{ date, extension_loaded, in_array, realpath, strtolower, version_compare, }; -use shirabe_semver::constraint::ConstraintInterface; +use shirabe_semver::constraint::AnyConstraint; use crate::command::{BaseCommand, BaseCommandData, HasBaseCommandData}; use crate::composer::PartialComposerHandle; @@ -1486,7 +1486,7 @@ impl ShowCommand { IndexMap<String, String>, )> { let name = strtolower(name); - let constraint: Option<Box<dyn ConstraintInterface>> = match &version { + let constraint: Option<AnyConstraint> = match &version { PhpMixed::String(s) => Some(self.version_parser.parse_constraints(s)?), PhpMixed::Null => None, _ => None, // already a ConstraintInterface @@ -1514,7 +1514,7 @@ impl ShowCommand { } else { repository_set.create_pool_for_package(&name, None)? }; - let matches = pool.what_provides(&name, constraint.as_deref()); + let matches = pool.what_provides(&name, constraint.as_ref()); let mut literals: Vec<i64> = Vec::new(); for package in matches.iter() { // avoid showing the 9999999-dev alias if the default branch has no branch-alias set diff --git a/crates/shirabe/src/command/update_command.rs b/crates/shirabe/src/command/update_command.rs index c4ae890..4096272 100644 --- a/crates/shirabe/src/command/update_command.rs +++ b/crates/shirabe/src/command/update_command.rs @@ -178,9 +178,7 @@ impl UpdateCommand { for (package, constraint) in &reqs { let package = strtolower(package); let parsed_constraint = parser.parse_constraints(constraint)?; - // TODO(phase-b): clone_box because Box<dyn ConstraintInterface> isn't Clone. - temporary_constraints.insert(package.clone(), parsed_constraint.clone_box()); - let _ = parsed_constraint; + temporary_constraints.insert(package.clone(), parsed_constraint); // TODO(phase-b): access root_requirements[package].getConstraint() let intersected: bool = todo!("Intervals::haveIntersections check"); if let Some(_root_req) = todo!("root_requirements.get(&package)") as Option<PhpMixed> { @@ -234,10 +232,9 @@ impl UpdateCommand { matches.get(1).cloned().unwrap_or_default() ))?; if temporary_constraints.contains_key(package.get_name()) { - // TODO(phase-b): Box<dyn ConstraintInterface> isn't Clone; clone_box workaround. let existing = temporary_constraints .get(package.get_name()) - .map(|c| c.clone_box()) + .map(|c| c.clone()) .unwrap(); temporary_constraints.insert( package.get_name().to_string(), |
