From d5b313f388d424e60ae33ae58c1a65a65b24b8f1 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 6 Jun 2026 18:04:45 +0900 Subject: refactor(command): share Input/OutputInterface via Rc Convert InputInterface and OutputInterface parameters from &dyn/&mut dyn references to Rc> shared ownership across the command, console, and IO layers, matching the Phase C shared-ownership approach already used for IOInterface. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/symfony/component/console/output/console_output.rs | 4 ++-- .../src/symfony/component/console/output/console_output_interface.rs | 4 ++-- .../src/symfony/component/console/output/output_interface.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'crates/shirabe-external-packages/src/symfony/component/console/output') diff --git a/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs b/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs index 332cbd1..00b9324 100644 --- a/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs +++ b/crates/shirabe-external-packages/src/symfony/component/console/output/console_output.rs @@ -16,11 +16,11 @@ impl ConsoleOutput { } impl ConsoleOutputInterface for ConsoleOutput { - fn get_error_output(&self) -> &dyn OutputInterface { + fn get_error_output(&self) -> std::rc::Rc> { todo!() } - fn set_error_output(&mut self, _error: Box) { + fn set_error_output(&mut self, _error: std::rc::Rc>) { todo!() } } diff --git a/crates/shirabe-external-packages/src/symfony/component/console/output/console_output_interface.rs b/crates/shirabe-external-packages/src/symfony/component/console/output/console_output_interface.rs index 8e68396..83ec1de 100644 --- a/crates/shirabe-external-packages/src/symfony/component/console/output/console_output_interface.rs +++ b/crates/shirabe-external-packages/src/symfony/component/console/output/console_output_interface.rs @@ -1,6 +1,6 @@ use crate::symfony::component::console::output::OutputInterface; pub trait ConsoleOutputInterface: OutputInterface { - fn get_error_output(&self) -> &dyn OutputInterface; - fn set_error_output(&mut self, error: Box); + fn get_error_output(&self) -> std::rc::Rc>; + fn set_error_output(&mut self, error: std::rc::Rc>); } diff --git a/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs b/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs index 11fb82e..9e58a3e 100644 --- a/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs +++ b/crates/shirabe-external-packages/src/symfony/component/console/output/output_interface.rs @@ -1,7 +1,7 @@ use crate::symfony::component::console::formatter::OutputFormatter; use crate::symfony::component::console::output::ConsoleOutputInterface; -pub trait OutputInterface { +pub trait OutputInterface: std::fmt::Debug { // PHP class semantics: OutputInterface methods take &self with interior mutability, // because output objects are shared by reference across the PHP code. fn write(&self, messages: &str, newline: bool, r#type: i64); -- cgit v1.3.1