aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/dependency_resolver')
-rw-r--r--crates/shirabe/src/dependency_resolver/problem.rs34
-rw-r--r--crates/shirabe/src/dependency_resolver/rule.rs28
-rw-r--r--crates/shirabe/src/dependency_resolver/rule_set_generator.rs16
-rw-r--r--crates/shirabe/src/dependency_resolver/solver.rs6
4 files changed, 42 insertions, 42 deletions
diff --git a/crates/shirabe/src/dependency_resolver/problem.rs b/crates/shirabe/src/dependency_resolver/problem.rs
index adc2f43..bbe652d 100644
--- a/crates/shirabe/src/dependency_resolver/problem.rs
+++ b/crates/shirabe/src/dependency_resolver/problem.rs
@@ -16,7 +16,7 @@ use shirabe_semver::constraint::multi_constraint::MultiConstraint;
use crate::advisory::security_advisory::SecurityAdvisory;
use crate::dependency_resolver::pool::Pool;
use crate::dependency_resolver::request::Request;
-use crate::dependency_resolver::rule::Rule;
+use crate::dependency_resolver::rule::{self, Rule};
use crate::package::alias_package::AliasPackage;
use crate::package::base_package::BasePackage;
use crate::package::complete_package_interface::CompletePackageInterface;
@@ -81,7 +81,7 @@ impl Problem {
if reasons.len() == 1 {
let rule = reasons[0].clone();
- if rule.get_reason() != Rule::RULE_ROOT_REQUIRE {
+ if rule.get_reason() != rule::RULE_ROOT_REQUIRE {
return Err(LogicException {
message: "Single reason problems must contain a root require rule.".to_string(),
code: 0,
@@ -134,16 +134,16 @@ impl Problem {
fn get_sortable_string(&self, pool: &Pool, rule: &dyn Rule) -> String {
match rule.get_reason() {
- Rule::RULE_ROOT_REQUIRE => rule.get_reason_data().as_array().unwrap()["packageName"]
+ rule::RULE_ROOT_REQUIRE => rule.get_reason_data().as_array().unwrap()["packageName"]
.as_string()
.unwrap()
.to_string(),
- Rule::RULE_FIXED => {
+ rule::RULE_FIXED => {
// TODO(phase-b): reason_data for RULE_FIXED is `array{package: BasePackage}`.
// PHP: (string) $rule->getReasonData()['package']
php_to_string(rule.get_reason_data().as_array().unwrap()["package"].as_ref())
}
- Rule::RULE_PACKAGE_CONFLICT | Rule::RULE_PACKAGE_REQUIRES => {
+ rule::RULE_PACKAGE_CONFLICT | rule::RULE_PACKAGE_REQUIRES => {
// TODO(phase-b): reason_data is a Link.
let source = rule.get_source_package(pool);
format!(
@@ -152,10 +152,10 @@ impl Problem {
rule.get_reason_data_as_link().get_pretty_string(&source)
)
}
- Rule::RULE_PACKAGE_SAME_NAME
- | Rule::RULE_PACKAGE_ALIAS
- | Rule::RULE_PACKAGE_INVERSE_ALIAS => php_to_string(&rule.get_reason_data()),
- Rule::RULE_LEARNED => implode(
+ rule::RULE_PACKAGE_SAME_NAME
+ | rule::RULE_PACKAGE_ALIAS
+ | rule::RULE_PACKAGE_INVERSE_ALIAS => php_to_string(&rule.get_reason_data()),
+ rule::RULE_LEARNED => implode(
"-",
&rule
.get_literals()
@@ -172,13 +172,13 @@ impl Problem {
fn get_rule_priority(&self, rule: &dyn Rule) -> i64 {
match rule.get_reason() {
- Rule::RULE_FIXED => 3,
- Rule::RULE_ROOT_REQUIRE => 2,
- Rule::RULE_PACKAGE_CONFLICT | Rule::RULE_PACKAGE_REQUIRES => 1,
- Rule::RULE_PACKAGE_SAME_NAME
- | Rule::RULE_LEARNED
- | Rule::RULE_PACKAGE_ALIAS
- | Rule::RULE_PACKAGE_INVERSE_ALIAS => 0,
+ rule::RULE_FIXED => 3,
+ rule::RULE_ROOT_REQUIRE => 2,
+ rule::RULE_PACKAGE_CONFLICT | rule::RULE_PACKAGE_REQUIRES => 1,
+ rule::RULE_PACKAGE_SAME_NAME
+ | rule::RULE_LEARNED
+ | rule::RULE_PACKAGE_ALIAS
+ | rule::RULE_PACKAGE_INVERSE_ALIAS => 0,
_ => {
// @phpstan-ignore deadCode.unreachable
panic!("Unknown rule type: {}", rule.get_reason());
@@ -202,7 +202,7 @@ impl Problem {
IndexMap::new();
let parser = VersionParser::new();
let deduplicatable_rule_types =
- vec![Rule::RULE_PACKAGE_REQUIRES, Rule::RULE_PACKAGE_CONFLICT];
+ vec![rule::RULE_PACKAGE_REQUIRES, rule::RULE_PACKAGE_CONFLICT];
for rule in rules {
let mut message = rule.get_pretty_string(
repository_set,
diff --git a/crates/shirabe/src/dependency_resolver/rule.rs b/crates/shirabe/src/dependency_resolver/rule.rs
index eb8d2a0..d1ec5c9 100644
--- a/crates/shirabe/src/dependency_resolver/rule.rs
+++ b/crates/shirabe/src/dependency_resolver/rule.rs
@@ -39,22 +39,22 @@ pub enum ReasonData {
},
}
-pub trait Rule: std::fmt::Display {
- // reason constants and // their reason data contents
- const RULE_ROOT_REQUIRE: i64 = 2;
- const RULE_FIXED: i64 = 3;
- const RULE_PACKAGE_CONFLICT: i64 = 6;
- const RULE_PACKAGE_REQUIRES: i64 = 7;
- const RULE_PACKAGE_SAME_NAME: i64 = 10;
- const RULE_LEARNED: i64 = 12;
- const RULE_PACKAGE_ALIAS: i64 = 13;
- const RULE_PACKAGE_INVERSE_ALIAS: i64 = 14;
+// reason constants and // their reason data contents
+pub const RULE_ROOT_REQUIRE: i64 = 2;
+pub const RULE_FIXED: i64 = 3;
+pub const RULE_PACKAGE_CONFLICT: i64 = 6;
+pub const RULE_PACKAGE_REQUIRES: i64 = 7;
+pub const RULE_PACKAGE_SAME_NAME: i64 = 10;
+pub const RULE_LEARNED: i64 = 12;
+pub const RULE_PACKAGE_ALIAS: i64 = 13;
+pub const RULE_PACKAGE_INVERSE_ALIAS: i64 = 14;
- // bitfield defs
- const BITFIELD_TYPE: i64 = 0;
- const BITFIELD_REASON: i64 = 8;
- const BITFIELD_DISABLED: i64 = 16;
+// bitfield defs
+pub const BITFIELD_TYPE: i64 = 0;
+pub const BITFIELD_REASON: i64 = 8;
+pub const BITFIELD_DISABLED: i64 = 16;
+pub trait Rule: std::fmt::Display {
fn bitfield(&self) -> i64;
fn bitfield_mut(&mut self) -> &mut i64;
fn request(&self) -> Option<&Request>;
diff --git a/crates/shirabe/src/dependency_resolver/rule_set_generator.rs b/crates/shirabe/src/dependency_resolver/rule_set_generator.rs
index fb74a70..d1f1f5b 100644
--- a/crates/shirabe/src/dependency_resolver/rule_set_generator.rs
+++ b/crates/shirabe/src/dependency_resolver/rule_set_generator.rs
@@ -11,7 +11,7 @@ use crate::dependency_resolver::multi_conflict_rule::MultiConflictRule;
use crate::dependency_resolver::policy_interface::PolicyInterface;
use crate::dependency_resolver::pool::Pool;
use crate::dependency_resolver::request::Request;
-use crate::dependency_resolver::rule::Rule;
+use crate::dependency_resolver::rule::{self, Rule};
use crate::dependency_resolver::rule_set::RuleSet;
use crate::dependency_resolver::rule2_literals::Rule2Literals;
use crate::filter::platform_requirement_filter::ignore_list_platform_requirement_filter::IgnoreListPlatformRequirementFilter;
@@ -182,7 +182,7 @@ impl RuleSetGenerator {
let rule = self.create_require_rule(
&*package,
&[alias_of.clone_box()],
- Rule::RULE_PACKAGE_ALIAS,
+ rule::RULE_PACKAGE_ALIAS,
PhpMixed::Null, // reasonData: $package (BasePackage)
);
self.add_rule(RuleSet::TYPE_PACKAGE, rule.map(Rule::from));
@@ -191,7 +191,7 @@ impl RuleSetGenerator {
let inverse_rule = self.create_require_rule(
alias_of,
&[package.clone_box()],
- Rule::RULE_PACKAGE_INVERSE_ALIAS,
+ rule::RULE_PACKAGE_INVERSE_ALIAS,
PhpMixed::Null, // reasonData: $package->getAliasOf() (BasePackage)
);
self.add_rule(RuleSet::TYPE_PACKAGE, inverse_rule.map(Rule::from));
@@ -220,7 +220,7 @@ impl RuleSetGenerator {
let rule = self.create_require_rule(
&*package,
&possible_requires,
- Rule::RULE_PACKAGE_REQUIRES,
+ rule::RULE_PACKAGE_REQUIRES,
PhpMixed::Null, // reasonData: $link (Link)
);
self.add_rule(RuleSet::TYPE_PACKAGE, rule.map(Rule::from));
@@ -271,7 +271,7 @@ impl RuleSetGenerator {
let rule = self.create_rule2_literals(
&**package,
&**conflict,
- Rule::RULE_PACKAGE_CONFLICT,
+ rule::RULE_PACKAGE_CONFLICT,
PhpMixed::Null, // reasonData: $link (Link)
);
self.add_rule(RuleSet::TYPE_PACKAGE, rule.map(Rule::from));
@@ -288,7 +288,7 @@ impl RuleSetGenerator {
for (name, packages) in names_packages {
if packages.len() > 1 {
- let reason = Rule::RULE_PACKAGE_SAME_NAME;
+ let reason = rule::RULE_PACKAGE_SAME_NAME;
let rule =
self.create_multi_conflict_rule(&packages, reason, PhpMixed::String(name));
self.add_rule(RuleSet::TYPE_PACKAGE, Some(rule));
@@ -327,7 +327,7 @@ impl RuleSetGenerator {
);
let rule = self.create_install_one_of_rule(
&[package.clone_box()],
- Rule::RULE_FIXED,
+ rule::RULE_FIXED,
PhpMixed::Array(reason_data),
);
self.add_rule(RuleSet::TYPE_REQUEST, Some(Rule::from(rule)));
@@ -362,7 +362,7 @@ impl RuleSetGenerator {
);
let rule = self.create_install_one_of_rule(
&packages,
- Rule::RULE_ROOT_REQUIRE,
+ rule::RULE_ROOT_REQUIRE,
PhpMixed::Array(reason_data),
);
self.add_rule(RuleSet::TYPE_REQUEST, Some(Rule::from(rule)));
diff --git a/crates/shirabe/src/dependency_resolver/solver.rs b/crates/shirabe/src/dependency_resolver/solver.rs
index d5f4ccd..b26c289 100644
--- a/crates/shirabe/src/dependency_resolver/solver.rs
+++ b/crates/shirabe/src/dependency_resolver/solver.rs
@@ -15,7 +15,7 @@ use crate::dependency_resolver::policy_interface::PolicyInterface;
use crate::dependency_resolver::pool::Pool;
use crate::dependency_resolver::problem::Problem;
use crate::dependency_resolver::request::Request;
-use crate::dependency_resolver::rule::Rule;
+use crate::dependency_resolver::rule::{self, Rule};
use crate::dependency_resolver::rule_set::RuleSet;
use crate::dependency_resolver::rule_set_generator::RuleSetGenerator;
use crate::dependency_resolver::rule_watch_graph::RuleWatchGraph;
@@ -206,7 +206,7 @@ impl Solver {
reason_data.insert("constraint".to_string(), PhpMixed::Null);
problem.add_rule(Rule::generic(GenericRule::new(
Vec::new(),
- PhpMixed::Int(Rule::RULE_ROOT_REQUIRE),
+ PhpMixed::Int(rule::RULE_ROOT_REQUIRE),
PhpMixed::Array(
reason_data
.into_iter()
@@ -590,7 +590,7 @@ impl Solver {
array_unshift::<i64>(&mut other_learned_literals, learned_literal);
let new_rule = GenericRule::new(
other_learned_literals,
- PhpMixed::Int(Rule::RULE_LEARNED),
+ PhpMixed::Int(rule::RULE_LEARNED),
PhpMixed::Int(why),
);