diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-19 21:46:01 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-19 21:46:08 +0900 |
| commit | 5e31fa33c3b5cf726a57a063b8e7a070869250fe (patch) | |
| tree | 98522466966fa7df483cad174ab5fc03db39bc09 /crates/shirabe/src/dependency_resolver/operation | |
| parent | c839244d8d09f3036ebfee8eef7eb6b147e593ab (diff) | |
| download | php-shirabe-5e31fa33c3b5cf726a57a063b8e7a070869250fe.tar.gz php-shirabe-5e31fa33c3b5cf726a57a063b8e7a070869250fe.tar.zst php-shirabe-5e31fa33c3b5cf726a57a063b8e7a070869250fe.zip | |
fix(compile): fix more random compile errors
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/operation')
6 files changed, 50 insertions, 0 deletions
diff --git a/crates/shirabe/src/dependency_resolver/operation/install_operation.rs b/crates/shirabe/src/dependency_resolver/operation/install_operation.rs index 1835636..53b5f99 100644 --- a/crates/shirabe/src/dependency_resolver/operation/install_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/install_operation.rs @@ -34,6 +34,10 @@ impl SolverOperation for InstallOperation { } impl OperationInterface for InstallOperation { + fn as_any(&self) -> &dyn std::any::Any { + self + } + fn get_operation_type(&self) -> String { Self::TYPE.to_string() } @@ -45,4 +49,8 @@ impl OperationInterface for InstallOperation { fn to_string(&self) -> String { self.show(true) } + + fn as_install_operation(&self) -> Option<&InstallOperation> { + Some(self) + } } 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 e5a7df9..fa6f13d 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 @@ -25,6 +25,10 @@ impl SolverOperation for MarkAliasInstalledOperation { } impl OperationInterface for MarkAliasInstalledOperation { + fn as_any(&self) -> &dyn std::any::Any { + self + } + fn get_operation_type(&self) -> String { Self::TYPE.to_string() } 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 21e257d..b9d5d26 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 @@ -25,6 +25,10 @@ impl SolverOperation for MarkAliasUninstalledOperation { } impl OperationInterface for MarkAliasUninstalledOperation { + fn as_any(&self) -> &dyn std::any::Any { + self + } + fn get_operation_type(&self) -> String { Self::TYPE.to_string() } diff --git a/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs b/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs index d93bd0f..f90649d 100644 --- a/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs +++ b/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs @@ -1,6 +1,12 @@ //! ref: composer/src/Composer/DependencyResolver/Operation/OperationInterface.php +use crate::dependency_resolver::operation::install_operation::InstallOperation; +use crate::dependency_resolver::operation::uninstall_operation::UninstallOperation; +use crate::dependency_resolver::operation::update_operation::UpdateOperation; + pub trait OperationInterface: std::fmt::Debug { + fn as_any(&self) -> &dyn std::any::Any; + fn get_operation_type(&self) -> String; fn show(&self, lock: bool) -> String; @@ -10,4 +16,16 @@ pub trait OperationInterface: std::fmt::Debug { fn clone_box(&self) -> Box<dyn OperationInterface> { todo!() } + + fn as_install_operation(&self) -> Option<&InstallOperation> { + None + } + + fn as_update_operation(&self) -> Option<&UpdateOperation> { + None + } + + fn as_uninstall_operation(&self) -> Option<&UninstallOperation> { + None + } } diff --git a/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs b/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs index 138a8c8..be7f6f1 100644 --- a/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs @@ -33,6 +33,10 @@ impl SolverOperation for UninstallOperation { } impl OperationInterface for UninstallOperation { + fn as_any(&self) -> &dyn std::any::Any { + self + } + fn get_operation_type(&self) -> String { Self::TYPE.to_string() } @@ -44,4 +48,8 @@ impl OperationInterface for UninstallOperation { fn to_string(&self) -> String { self.show(true) } + + fn as_uninstall_operation(&self) -> Option<&UninstallOperation> { + Some(self) + } } diff --git a/crates/shirabe/src/dependency_resolver/operation/update_operation.rs b/crates/shirabe/src/dependency_resolver/operation/update_operation.rs index c1498ad..9adb248 100644 --- a/crates/shirabe/src/dependency_resolver/operation/update_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/update_operation.rs @@ -79,6 +79,10 @@ impl SolverOperation for UpdateOperation { } impl OperationInterface for UpdateOperation { + fn as_any(&self) -> &dyn std::any::Any { + self + } + fn get_operation_type(&self) -> String { Self::TYPE.to_string() } @@ -94,4 +98,8 @@ impl OperationInterface for UpdateOperation { fn to_string(&self) -> String { self.show(true) } + + fn as_update_operation(&self) -> Option<&UpdateOperation> { + Some(self) + } } |
