From 44e82cc7d937d49593c6f436d03a38f3371b6873 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 6 Jun 2026 15:36:28 +0900 Subject: refactor(operation,link): port __toString to Display Move __toString ports to std::fmt::Display: convert Link's inherent to_string() and make OperationInterface require Display instead of a to_string() method, with each operation implementing Display. Also fix the operation __toString output to use show(false), matching SolverOperation::__toString() (was show(true)). Co-Authored-By: Claude Opus 4.8 --- .../src/dependency_resolver/operation/install_operation.rs | 10 ++++++---- .../operation/mark_alias_installed_operation.rs | 6 ++++-- .../operation/mark_alias_uninstalled_operation.rs | 6 ++++-- .../src/dependency_resolver/operation/operation_interface.rs | 4 +--- .../src/dependency_resolver/operation/uninstall_operation.rs | 10 ++++++---- .../src/dependency_resolver/operation/update_operation.rs | 10 ++++++---- 6 files changed, 27 insertions(+), 19 deletions(-) (limited to 'crates/shirabe/src/dependency_resolver') diff --git a/crates/shirabe/src/dependency_resolver/operation/install_operation.rs b/crates/shirabe/src/dependency_resolver/operation/install_operation.rs index 1331591..ca3286c 100644 --- a/crates/shirabe/src/dependency_resolver/operation/install_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/install_operation.rs @@ -45,11 +45,13 @@ impl OperationInterface for InstallOperation { Self::format(self.package.clone(), lock) } - fn to_string(&self) -> String { - self.show(true) - } - fn as_install_operation(&self) -> Option<&InstallOperation> { Some(self) } } + +impl std::fmt::Display for InstallOperation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.show(false)) + } +} diff --git a/crates/shirabe/src/dependency_resolver/operation/mark_alias_installed_operation.rs b/crates/shirabe/src/dependency_resolver/operation/mark_alias_installed_operation.rs index f5cb825..ab07b6a 100644 --- a/crates/shirabe/src/dependency_resolver/operation/mark_alias_installed_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/mark_alias_installed_operation.rs @@ -44,8 +44,10 @@ impl OperationInterface for MarkAliasInstalledOperation { .get_full_pretty_version(true, crate::package::DisplayMode::SourceRefIfDev), ) } +} - fn to_string(&self) -> String { - self.show(true) +impl std::fmt::Display for MarkAliasInstalledOperation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.show(false)) } } diff --git a/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs b/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs index f8314f5..1b107f0 100644 --- a/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs @@ -44,8 +44,10 @@ impl OperationInterface for MarkAliasUninstalledOperation { .get_full_pretty_version(true, crate::package::DisplayMode::SourceRefIfDev), ) } +} - fn to_string(&self) -> String { - self.show(true) +impl std::fmt::Display for MarkAliasUninstalledOperation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.show(false)) } } diff --git a/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs b/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs index 51b150c..30ed8eb 100644 --- a/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs +++ b/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs @@ -4,15 +4,13 @@ use crate::dependency_resolver::operation::InstallOperation; use crate::dependency_resolver::operation::UninstallOperation; use crate::dependency_resolver::operation::UpdateOperation; -pub trait OperationInterface: std::fmt::Debug { +pub trait OperationInterface: std::fmt::Display + std::fmt::Debug { fn as_any(&self) -> &dyn std::any::Any; fn get_operation_type(&self) -> String; fn show(&self, lock: bool) -> String; - fn to_string(&self) -> String; - fn as_install_operation(&self) -> Option<&InstallOperation> { None } diff --git a/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs b/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs index 465297d..efb3610 100644 --- a/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs @@ -44,11 +44,13 @@ impl OperationInterface for UninstallOperation { Self::format(self.package.clone(), lock) } - fn to_string(&self) -> String { - self.show(true) - } - fn as_uninstall_operation(&self) -> Option<&UninstallOperation> { Some(self) } } + +impl std::fmt::Display for UninstallOperation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.show(false)) + } +} diff --git a/crates/shirabe/src/dependency_resolver/operation/update_operation.rs b/crates/shirabe/src/dependency_resolver/operation/update_operation.rs index 0bf3e35..76b1718 100644 --- a/crates/shirabe/src/dependency_resolver/operation/update_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/update_operation.rs @@ -95,11 +95,13 @@ impl OperationInterface for UpdateOperation { ) } - fn to_string(&self) -> String { - self.show(true) - } - fn as_update_operation(&self) -> Option<&UpdateOperation> { Some(self) } } + +impl std::fmt::Display for UpdateOperation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.show(false)) + } +} -- cgit v1.3.1