From 0ccb1a7740e63e4118c156f81aacf6381ae38464 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 24 Jun 2026 00:50:07 +0900 Subject: feat(io): implement BufferIO new/get_output/set_user_inputs Wire StreamOutput into BufferIO::new, retrieve the stream in get_output via downcast, and set the user input stream in set_user_inputs. Add as_streamable_mut to InputInterface (and ArgvInput) for mutable streamable access, and make StringInput implement StreamableInputInterface to match PHP, where StringInput is streamable via its Input ancestor. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/symfony/console/input/input_interface.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs') diff --git a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs index ccb5a98..6ef7877 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs @@ -48,4 +48,9 @@ pub trait InputInterface: std::fmt::Debug + shirabe_php_shim::AsAny { fn as_streamable(&self) -> Option<&dyn StreamableInputInterface> { None } + + /// Mutable counterpart of `as_streamable`, needed to call `set_stream`/`set_interactive`. + fn as_streamable_mut(&mut self) -> Option<&mut dyn StreamableInputInterface> { + None + } } -- cgit v1.3.1