aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/command')
-rw-r--r--crates/shirabe/src/command/archive_command.rs10
-rw-r--r--crates/shirabe/src/command/base_dependency_command.rs10
-rw-r--r--crates/shirabe/src/command/check_platform_reqs_command.rs23
-rw-r--r--crates/shirabe/src/command/fund_command.rs7
-rw-r--r--crates/shirabe/src/command/package_discovery_trait.rs9
-rw-r--r--crates/shirabe/src/command/show_command.rs6
-rw-r--r--crates/shirabe/src/command/update_command.rs7
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(),