diff options
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/output')
| -rw-r--r-- | crates/shirabe-external-packages/src/symfony/console/output/console_output.rs | 3 | ||||
| -rw-r--r-- | crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs b/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs index 254ec2ca..306f1e61 100644 --- a/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs +++ b/crates/shirabe-external-packages/src/symfony/console/output/console_output.rs @@ -204,4 +204,7 @@ impl OutputInterface for ConsoleOutput { fn get_formatter(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>> { self.inner.get_formatter() } + fn as_console_output(&self) -> Option<&dyn ConsoleOutputInterface> { + Some(self) + } } diff --git a/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs b/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs index 43810f13..28ebd85c 100644 --- a/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs +++ b/crates/shirabe-external-packages/src/symfony/console/output/output_interface.rs @@ -53,4 +53,14 @@ pub trait OutputInterface: std::fmt::Debug + shirabe_php_shim::AsAny { /// Returns current output formatter instance. fn get_formatter(&self) -> std::rc::Rc<std::cell::RefCell<dyn OutputFormatterInterface>>; + + /// Downcast hook standing in for PHP's `$output instanceof ConsoleOutputInterface` + /// (cf. `InputInterface::as_streamable`). Only `ConsoleOutput` returns `Some`. + fn as_console_output( + &self, + ) -> Option< + &dyn crate::symfony::console::output::console_output_interface::ConsoleOutputInterface, + > { + None + } } |
