From 46845eff8d1398f35099a0ef914f77bcaf473287 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 10 May 2026 15:29:19 +0900 Subject: refactor(io): introduce IoInterface trait mirroring Composer IOInterface Add an `IoInterface` trait in mozart-core::console that mirrors `\Composer\IO\IOInterface`, implement it for `Console`, and switch commands, the auditor, and the suggested-packages reporter to accept the abstracted IO (typically `Arc>>` at the command boundary, `&dyn IoInterface` deeper down) instead of `&Console`. The console_writeln\!/write\! macros now go through `IoInterface::verbosity()` via the lock so any implementor works. --- crates/mozart/src/commands/about.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'crates/mozart/src/commands/about.rs') diff --git a/crates/mozart/src/commands/about.rs b/crates/mozart/src/commands/about.rs index 04c3aa1..6b97ec4 100644 --- a/crates/mozart/src/commands/about.rs +++ b/crates/mozart/src/commands/about.rs @@ -1,6 +1,6 @@ use clap::Args; use mozart_core::MOZART_VERSION; -use mozart_core::console; +use mozart_core::console::IoInterface; use mozart_core::console_writeln; #[derive(Args)] @@ -9,10 +9,10 @@ pub struct AboutArgs {} pub async fn execute( _args: &AboutArgs, _cli: &super::Cli, - console: &console::Console, + io: std::sync::Arc>>, ) -> anyhow::Result<()> { console_writeln!( - console, + io, r#"Mozart - Dependency Manager for PHP - version {MOZART_VERSION} Mozart is a dependency manager tracking local dependencies of your projects and libraries. See https://getcomposer.org/ for more information."#, -- cgit v1.3.1