aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/io/io_interface.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-04 21:17:48 +0900
committernsfisis <nsfisis@gmail.com>2026-07-04 21:17:48 +0900
commit865065217f0e79ca2b359a5c60a2b49b97ff67f8 (patch)
tree18a16022fddb230fae07cfbbabeffdb6b4927378 /crates/shirabe/src/io/io_interface.rs
parent6ba0a31ddfd68ecf8359f8276574bfe9bd5de5fa (diff)
downloadphp-shirabe-865065217f0e79ca2b359a5c60a2b49b97ff67f8.tar.gz
php-shirabe-865065217f0e79ca2b359a5c60a2b49b97ff67f8.tar.zst
php-shirabe-865065217f0e79ca2b359a5c60a2b49b97ff67f8.zip
fix(console-application): implement --profile via IOInterface::enable_debugging
The --profile flag parsed the option but never actually enabled the timing/memory output, because ConsoleIO::enableDebugging existed only as an inherent method, unreachable through the `dyn IOInterface` handle held by Application. Promote enable_debugging to an IOInterface trait method (default panics, since only ConsoleIO/BufferIO ever legitimately receive this call) so do_run can invoke it directly without downcasting.
Diffstat (limited to 'crates/shirabe/src/io/io_interface.rs')
-rw-r--r--crates/shirabe/src/io/io_interface.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/crates/shirabe/src/io/io_interface.rs b/crates/shirabe/src/io/io_interface.rs
index 1ae8d28..af3f688 100644
--- a/crates/shirabe/src/io/io_interface.rs
+++ b/crates/shirabe/src/io/io_interface.rs
@@ -155,6 +155,11 @@ pub trait IOInterface: IOInterfaceImmutable + IOInterfaceMutable {
fn as_base_io_mut(&mut self) -> Option<&mut dyn crate::io::BaseIO> {
None
}
+
+ // PHP: only `ConsoleIO::enableDebugging` exists; the interface itself does not declare it.
+ fn enable_debugging(&mut self, _start_time: f64) {
+ panic!("enable_debugging is only supported by ConsoleIO/BufferIO");
+ }
}
// Shared-ownership handle for a PHP IO instance (reference semantics). It