diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-17 18:21:00 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-17 18:21:00 +0900 |
| commit | 465a3a1bd96e15d7807d1bd05294299eee3427df (patch) | |
| tree | decb5e3b2db3388e8dd950713732b4d09cc2f07a /crates/shirabe/src | |
| parent | db5b360d5f1ddfdc6ba7cce6704b41310b715f70 (diff) | |
| download | php-shirabe-465a3a1bd96e15d7807d1bd05294299eee3427df.tar.gz php-shirabe-465a3a1bd96e15d7807d1bd05294299eee3427df.tar.zst php-shirabe-465a3a1bd96e15d7807d1bd05294299eee3427df.zip | |
fix(compile): extract constants from traits to make them dyn-compatible
Diffstat (limited to 'crates/shirabe/src')
| -rw-r--r-- | crates/shirabe/src/command/fund_command.rs | 4 | ||||
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/problem.rs | 34 | ||||
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/rule.rs | 28 | ||||
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/rule_set_generator.rs | 16 | ||||
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/solver.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe/src/package/base_package.rs | 12 |
6 files changed, 50 insertions, 50 deletions
diff --git a/crates/shirabe/src/command/fund_command.rs b/crates/shirabe/src/command/fund_command.rs index 0d0c2ec..cffde6b 100644 --- a/crates/shirabe/src/command/fund_command.rs +++ b/crates/shirabe/src/command/fund_command.rs @@ -18,7 +18,7 @@ use crate::console::input::input_option::InputOption; use crate::io::io_interface::IOInterface; use crate::json::json_file::JsonFile; use crate::package::alias_package::AliasPackage; -use crate::package::base_package::BasePackage; +use crate::package::base_package::{self, BasePackage}; use crate::package::complete_package::CompletePackage; use crate::repository::composite_repository::CompositeRepository; @@ -73,7 +73,7 @@ impl FundCommand { // load all packages dev versions in parallel let result = remote_repos.load_packages( &packages_to_load, - &IndexMap::from([("dev".to_string(), BasePackage::STABILITY_DEV)]), + &IndexMap::from([("dev".to_string(), base_package::STABILITY_DEV)]), &IndexMap::new(), )?; 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), ); diff --git a/crates/shirabe/src/package/base_package.rs b/crates/shirabe/src/package/base_package.rs index eb6cc90..af31bb4 100644 --- a/crates/shirabe/src/package/base_package.rs +++ b/crates/shirabe/src/package/base_package.rs @@ -66,13 +66,13 @@ pub static STABILITIES: LazyLock<IndexMap<&'static str, i64>> = LazyLock::new(|| m }); -pub trait BasePackage: PackageInterface + std::fmt::Display { - const STABILITY_STABLE: i64 = 0; - const STABILITY_RC: i64 = 5; - const STABILITY_BETA: i64 = 10; - const STABILITY_ALPHA: i64 = 15; - const STABILITY_DEV: i64 = 20; +pub const STABILITY_STABLE: i64 = 0; +pub const STABILITY_RC: i64 = 5; +pub const STABILITY_BETA: i64 = 10; +pub const STABILITY_ALPHA: i64 = 15; +pub const STABILITY_DEV: i64 = 20; +pub trait BasePackage: PackageInterface + std::fmt::Display { fn id(&self) -> i64; fn id_mut(&mut self) -> &mut i64; fn name(&self) -> &str; |
