aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver/generic_rule.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-17 13:56:15 +0900
committernsfisis <nsfisis@gmail.com>2026-05-17 13:59:31 +0900
commita9bb49c7d685dd82feaf4050f756fdf590315200 (patch)
tree0242a737e8280fe9e25c38bb7a6f844d2eff623c /crates/shirabe/src/dependency_resolver/generic_rule.rs
parent15b1be89eb168a30e96459c6a5307afcb7323bbc (diff)
downloadphp-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/generic_rule.rs')
-rw-r--r--crates/shirabe/src/dependency_resolver/generic_rule.rs57
1 files changed, 50 insertions, 7 deletions
diff --git a/crates/shirabe/src/dependency_resolver/generic_rule.rs b/crates/shirabe/src/dependency_resolver/generic_rule.rs
index f30d612..23d1e3c 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!()
+ }
+}