diff options
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/operation/operation_interface.rs')
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/operation/operation_interface.rs | 18 |
1 files changed, 18 insertions, 0 deletions
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 + } } |
