diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-17 13:56:15 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-17 13:59:31 +0900 |
| commit | a9bb49c7d685dd82feaf4050f756fdf590315200 (patch) | |
| tree | 0242a737e8280fe9e25c38bb7a6f844d2eff623c /crates/shirabe/src/dependency_resolver | |
| parent | 15b1be89eb168a30e96459c6a5307afcb7323bbc (diff) | |
| download | php-shirabe-a9bb49c7d685dd82feaf4050f756fdf590315200.tar.gz php-shirabe-a9bb49c7d685dd82feaf4050f756fdf590315200.tar.zst php-shirabe-a9bb49c7d685dd82feaf4050f756fdf590315200.zip | |
fix(compile): implement abstract class traits across all types
Implement BaseCommand trait and other abstract class traits across
all command, downloader, io, package, and VCS driver types. Also
fix trait method signatures for composer_mut and io_mut to return
mutable references to Option rather than Option of mutable references.
Diffstat (limited to 'crates/shirabe/src/dependency_resolver')
3 files changed, 142 insertions, 9 deletions
diff --git a/crates/shirabe/src/dependency_resolver/generic_rule.rs b/crates/shirabe/src/dependency_resolver/generic_rule.rs index f30d6125..23d1e3c3 100644 --- a/crates/shirabe/src/dependency_resolver/generic_rule.rs +++ b/crates/shirabe/src/dependency_resolver/generic_rule.rs @@ -2,19 +2,16 @@ use crate::dependency_resolver::rule::Rule; use anyhow::Result; -use shirabe_php_shim::{PHP_VERSION_ID, RuntimeException, hash_raw, implode, unpack}; +use shirabe_php_shim::{PHP_VERSION_ID, PhpMixed, RuntimeException, hash_raw, implode, unpack}; + +use super::{request::Request, rule::ReasonData}; pub struct GenericRule { - inner: Rule, pub(crate) literals: Vec<i64>, } impl GenericRule { - pub fn new( - mut literals: Vec<i64>, - reason: shirabe_php_shim::PhpMixed, - reason_data: shirabe_php_shim::PhpMixed, - ) -> Self { + pub fn new(mut literals: Vec<i64>, reason: PhpMixed, reason_data: PhpMixed) -> Self { let inner = Rule::new(reason, reason_data); literals.sort(); Self { inner, literals } @@ -96,3 +93,49 @@ impl RuleLiterals for GenericRule { &self.literals } } + +impl Rule for GenericRule { + fn bitfield(&self) -> i64 { + todo!() + } + + fn bitfield_mut(&mut self) -> &mut i64 { + todo!() + } + + fn request(&self) -> Option<&Request> { + todo!() + } + + fn request_mut(&mut self) -> Option<&mut Request> { + todo!() + } + + fn reason_data(&self) -> Option<&ReasonData> { + todo!() + } + + fn reason_data_mut(&mut self) -> Option<&mut ReasonData> { + todo!() + } + + fn get_literals(&self) -> Vec<i64> { + todo!() + } + + fn get_hash(&self) -> PhpMixed { + todo!() + } + + fn to_string(&self) -> String { + todo!() + } + + fn equals(&self, rule: &dyn Rule) -> bool { + todo!() + } + + fn is_assertion(&self) -> bool { + todo!() + } +} diff --git a/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs b/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs index b15434e0..981a5225 100644 --- a/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs +++ b/crates/shirabe/src/dependency_resolver/multi_conflict_rule.rs @@ -7,7 +7,6 @@ use shirabe_php_shim::{PHP_VERSION_ID, RuntimeException, hash_raw}; #[derive(Debug)] pub struct MultiConflictRule { - inner: Rule, pub(crate) literals: Vec<i64>, } @@ -118,3 +117,49 @@ impl RuleLiterals for MultiConflictRule { true } } + +impl Rule for MultiConflictRule { + fn bitfield(&self) -> i64 { + todo!() + } + + fn bitfield_mut(&mut self) -> &mut i64 { + todo!() + } + + fn request(&self) -> Option<&Request> { + todo!() + } + + fn request_mut(&mut self) -> Option<&mut Request> { + todo!() + } + + fn reason_data(&self) -> Option<&ReasonData> { + todo!() + } + + fn reason_data_mut(&mut self) -> Option<&mut ReasonData> { + todo!() + } + + fn get_literals(&self) -> Vec<i64> { + todo!() + } + + fn get_hash(&self) -> PhpMixed { + todo!() + } + + fn to_string(&self) -> String { + todo!() + } + + fn equals(&self, rule: &dyn Rule) -> bool { + todo!() + } + + fn is_assertion(&self) -> bool { + todo!() + } +} diff --git a/crates/shirabe/src/dependency_resolver/rule2_literals.rs b/crates/shirabe/src/dependency_resolver/rule2_literals.rs index e86c93d6..50ae77b2 100644 --- a/crates/shirabe/src/dependency_resolver/rule2_literals.rs +++ b/crates/shirabe/src/dependency_resolver/rule2_literals.rs @@ -5,7 +5,6 @@ use crate::dependency_resolver::rule::Rule; #[derive(Debug)] pub struct Rule2Literals { - inner: Rule, pub(crate) literal1: i64, pub(crate) literal2: i64, literals: Vec<i64>, @@ -71,3 +70,49 @@ impl RuleLiterals for Rule2Literals { &self.literals } } + +impl Rule for Rule2Literals { + fn bitfield(&self) -> i64 { + todo!() + } + + fn bitfield_mut(&mut self) -> &mut i64 { + todo!() + } + + fn request(&self) -> Option<&Request> { + todo!() + } + + fn request_mut(&mut self) -> Option<&mut Request> { + todo!() + } + + fn reason_data(&self) -> Option<&ReasonData> { + todo!() + } + + fn reason_data_mut(&mut self) -> Option<&mut ReasonData> { + todo!() + } + + fn get_literals(&self) -> Vec<i64> { + todo!() + } + + fn get_hash(&self) -> PhpMixed { + todo!() + } + + fn to_string(&self) -> String { + todo!() + } + + fn equals(&self, rule: &dyn Rule) -> bool { + todo!() + } + + fn is_assertion(&self) -> bool { + todo!() + } +} |
