diff options
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/operation')
6 files changed, 33 insertions, 39 deletions
diff --git a/crates/shirabe/src/dependency_resolver/operation/install_operation.rs b/crates/shirabe/src/dependency_resolver/operation/install_operation.rs index 466c877..23be038 100644 --- a/crates/shirabe/src/dependency_resolver/operation/install_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/install_operation.rs @@ -15,11 +15,11 @@ impl InstallOperation { Self { package } } - pub fn get_package(&self) -> &PackageInterfaceHandle { - &self.package + pub fn get_package(&self) -> PackageInterfaceHandle { + self.package.clone() } - pub fn format(package: &dyn PackageInterface, lock: bool) -> String { + pub fn format(package: PackageInterfaceHandle, lock: bool) -> String { format!( "{}<info>{}</info> (<comment>{}</comment>)", if lock { "Locking " } else { "Installing " }, @@ -44,7 +44,7 @@ impl OperationInterface for InstallOperation { } fn show(&self, lock: bool) -> String { - Self::format(self.package.as_rc().borrow().as_package_interface(), lock) + Self::format(self.package.clone(), lock) } fn to_string(&self) -> String { 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 339f86c..a10186a 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 @@ -2,21 +2,21 @@ use crate::dependency_resolver::operation::OperationInterface; use crate::dependency_resolver::operation::SolverOperation; -use crate::package::AliasPackage; +use crate::package::AliasPackageHandle; use crate::package::PackageInterface; #[derive(Debug)] pub struct MarkAliasInstalledOperation { - pub(crate) package: AliasPackage, + pub(crate) package: AliasPackageHandle, } impl MarkAliasInstalledOperation { - pub fn new(package: AliasPackage) -> Self { + pub fn new(package: AliasPackageHandle) -> Self { Self { package } } - pub fn get_package(&self) -> &AliasPackage { - &self.package + pub fn get_package(&self) -> AliasPackageHandle { + self.package.clone() } } @@ -36,12 +36,9 @@ impl OperationInterface for MarkAliasInstalledOperation { fn show(&self, _lock: bool) -> String { format!( "Marking <info>{}</info> (<comment>{}</comment>) as installed, alias of <info>{}</info> (<comment>{}</comment>)", - PackageInterface::get_pretty_name(&self.package), - PackageInterface::get_full_pretty_version( - &self.package, - true, - <dyn PackageInterface>::DISPLAY_SOURCE_REF_IF_DEV, - ), + self.package.get_pretty_name(), + self.package + .get_full_pretty_version(true, <dyn PackageInterface>::DISPLAY_SOURCE_REF_IF_DEV), self.package.get_alias_of().get_pretty_name(), self.package .get_alias_of() 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 a5b7b7d..b9ad26e 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 @@ -2,21 +2,21 @@ use crate::dependency_resolver::operation::OperationInterface; use crate::dependency_resolver::operation::SolverOperation; -use crate::package::AliasPackage; +use crate::package::AliasPackageHandle; use crate::package::PackageInterface; #[derive(Debug)] pub struct MarkAliasUninstalledOperation { - pub(crate) package: AliasPackage, + pub(crate) package: AliasPackageHandle, } impl MarkAliasUninstalledOperation { - pub fn new(package: AliasPackage) -> Self { + pub fn new(package: AliasPackageHandle) -> Self { Self { package } } - pub fn get_package(&self) -> &AliasPackage { - &self.package + pub fn get_package(&self) -> AliasPackageHandle { + self.package.clone() } } @@ -36,12 +36,9 @@ impl OperationInterface for MarkAliasUninstalledOperation { fn show(&self, _lock: bool) -> String { format!( "Marking <info>{}</info> (<comment>{}</comment>) as uninstalled, alias of <info>{}</info> (<comment>{}</comment>)", - PackageInterface::get_pretty_name(&self.package), - PackageInterface::get_full_pretty_version( - &self.package, - true, - <dyn PackageInterface>::DISPLAY_SOURCE_REF_IF_DEV, - ), + self.package.get_pretty_name(), + self.package + .get_full_pretty_version(true, <dyn PackageInterface>::DISPLAY_SOURCE_REF_IF_DEV), self.package.get_alias_of().get_pretty_name(), self.package .get_alias_of() diff --git a/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs b/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs index a5b5e5f..3c24ff4 100644 --- a/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs +++ b/crates/shirabe/src/dependency_resolver/operation/operation_interface.rs @@ -31,7 +31,7 @@ pub trait OperationInterface: std::fmt::Debug { /// PHP duck-typed accessor. Only InstallOperation/UninstallOperation/MarkAlias*Operation /// expose this; UpdateOperation has getInitialPackage()/getTargetPackage() instead. - fn get_package(&self) -> &dyn crate::package::PackageInterface { + fn get_package(&self) -> crate::package::PackageInterfaceHandle { todo!("get_package is not available on this operation type") } } diff --git a/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs b/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs index 2757146..3ff547c 100644 --- a/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs @@ -15,11 +15,11 @@ impl UninstallOperation { Self { package } } - pub fn get_package(&self) -> &PackageInterfaceHandle { - &self.package + pub fn get_package(&self) -> PackageInterfaceHandle { + self.package.clone() } - pub fn format(package: &dyn PackageInterface, _lock: bool) -> String { + pub fn format(package: PackageInterfaceHandle, _lock: bool) -> String { format!( "Removing <info>{}</info> (<comment>{}</comment>)", package.get_pretty_name(), @@ -43,7 +43,7 @@ impl OperationInterface for UninstallOperation { } fn show(&self, lock: bool) -> String { - Self::format(self.package.as_rc().borrow().as_package_interface(), lock) + Self::format(self.package.clone(), lock) } fn to_string(&self) -> String { diff --git a/crates/shirabe/src/dependency_resolver/operation/update_operation.rs b/crates/shirabe/src/dependency_resolver/operation/update_operation.rs index 6881782..bc31256 100644 --- a/crates/shirabe/src/dependency_resolver/operation/update_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/update_operation.rs @@ -20,17 +20,17 @@ impl UpdateOperation { } } - pub fn get_initial_package(&self) -> &PackageInterfaceHandle { - &self.initial_package + pub fn get_initial_package(&self) -> PackageInterfaceHandle { + self.initial_package.clone() } - pub fn get_target_package(&self) -> &PackageInterfaceHandle { - &self.target_package + pub fn get_target_package(&self) -> PackageInterfaceHandle { + self.target_package.clone() } pub fn format( - initial_package: &dyn PackageInterface, - target_package: &dyn PackageInterface, + initial_package: PackageInterfaceHandle, + target_package: PackageInterfaceHandle, lock: bool, ) -> String { let mut from_version = initial_package @@ -90,8 +90,8 @@ impl OperationInterface for UpdateOperation { fn show(&self, lock: bool) -> String { Self::format( - self.initial_package.as_rc().borrow().as_package_interface(), - self.target_package.as_rc().borrow().as_package_interface(), + self.initial_package.clone(), + self.target_package.clone(), lock, ) } |
