aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/symfony
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony')
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs4
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs5
-rw-r--r--crates/shirabe-external-packages/src/symfony/console/input/string_input.rs19
3 files changed, 28 insertions, 0 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs b/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs
index 0784c7b..875d217 100644
--- a/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/input/argv_input.rs
@@ -623,6 +623,10 @@ impl InputInterface for ArgvInput {
fn as_streamable(&self) -> Option<&dyn StreamableInputInterface> {
Some(self)
}
+
+ fn as_streamable_mut(&mut self) -> Option<&mut dyn StreamableInputInterface> {
+ Some(self)
+ }
}
impl StreamableInputInterface for ArgvInput {
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
+ }
}
diff --git a/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs b/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs
index e04e519..c3a0262 100644
--- a/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs
+++ b/crates/shirabe-external-packages/src/symfony/console/input/string_input.rs
@@ -4,6 +4,7 @@ use crate::symfony::console::exception::invalid_argument_exception::InvalidArgum
use crate::symfony::console::input::argv_input::ArgvInput;
use crate::symfony::console::input::input_definition::InputDefinition;
use crate::symfony::console::input::input_interface::InputInterface;
+use crate::symfony::console::input::streamable_input_interface::StreamableInputInterface;
use indexmap::IndexMap;
use shirabe_php_shim::{CaptureKey, PhpMixed};
@@ -210,4 +211,22 @@ impl InputInterface for StringInput {
fn set_interactive(&mut self, interactive: bool) {
self.inner.set_interactive(interactive)
}
+
+ fn as_streamable(&self) -> Option<&dyn StreamableInputInterface> {
+ Some(self)
+ }
+
+ fn as_streamable_mut(&mut self) -> Option<&mut dyn StreamableInputInterface> {
+ Some(self)
+ }
+}
+
+impl StreamableInputInterface for StringInput {
+ fn set_stream(&mut self, stream: shirabe_php_shim::PhpResource) {
+ self.inner.set_stream(stream)
+ }
+
+ fn get_stream(&self) -> Option<shirabe_php_shim::PhpResource> {
+ self.inner.get_stream()
+ }
}