aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/partial_composer.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-20 08:33:49 +0900
committernsfisis <nsfisis@gmail.com>2026-05-20 08:33:57 +0900
commitf31b101ce1e921a026ba234b1f0a83b0392bc118 (patch)
treeb7ac2aa84d71ebd162cc21aeab0240e7e0544988 /crates/shirabe/src/partial_composer.rs
parent5e31fa33c3b5cf726a57a063b8e7a070869250fe (diff)
downloadphp-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.gz
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.zst
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.zip
fix(compile): fix all remaining compile errors
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/partial_composer.rs')
-rw-r--r--crates/shirabe/src/partial_composer.rs27
1 files changed, 24 insertions, 3 deletions
diff --git a/crates/shirabe/src/partial_composer.rs b/crates/shirabe/src/partial_composer.rs
index a310ae8..1ed7805 100644
--- a/crates/shirabe/src/partial_composer.rs
+++ b/crates/shirabe/src/partial_composer.rs
@@ -15,7 +15,7 @@ pub struct PartialComposer {
repository_manager: Option<RepositoryManager>,
installation_manager: Option<InstallationManager>,
config: Option<std::rc::Rc<std::cell::RefCell<Config>>>,
- event_dispatcher: Option<EventDispatcher>,
+ event_dispatcher: Option<std::rc::Rc<std::cell::RefCell<EventDispatcher>>>,
}
impl PartialComposer {
@@ -63,11 +63,18 @@ impl PartialComposer {
self.installation_manager.as_ref().unwrap()
}
- pub fn set_event_dispatcher(&mut self, event_dispatcher: EventDispatcher) {
+ pub fn get_installation_manager_mut(&mut self) -> &mut InstallationManager {
+ self.installation_manager.as_mut().unwrap()
+ }
+
+ pub fn set_event_dispatcher(
+ &mut self,
+ event_dispatcher: std::rc::Rc<std::cell::RefCell<EventDispatcher>>,
+ ) {
self.event_dispatcher = Some(event_dispatcher);
}
- pub fn get_event_dispatcher(&self) -> &EventDispatcher {
+ pub fn get_event_dispatcher(&self) -> &std::rc::Rc<std::cell::RefCell<EventDispatcher>> {
self.event_dispatcher.as_ref().unwrap()
}
@@ -78,4 +85,18 @@ impl PartialComposer {
pub fn set_global(&mut self) {
self.global = true;
}
+
+ /// TODO(phase-b): Emulates PHP `$composer instanceof Composer` check.
+ /// PartialComposer cannot be a Composer here (Composer is a separate struct
+ /// that wraps PartialComposer via composition), so this always returns false.
+ pub fn is_full_composer(&self) -> bool {
+ false
+ }
+
+ /// TODO(phase-b): Emulates PHP downcast to `Composer`.
+ /// Returns self as `&dyn Any`; downcasting to Composer will always fail because
+ /// PartialComposer is not a Composer in this Rust port.
+ pub fn as_any(&self) -> &dyn std::any::Any {
+ self
+ }
}