aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver/operation
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/operation')
-rw-r--r--crates/shirabe/src/dependency_resolver/operation/install_operation.rs8
-rw-r--r--crates/shirabe/src/dependency_resolver/operation/mark_alias_installed_operation.rs19
-rw-r--r--crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs19
-rw-r--r--crates/shirabe/src/dependency_resolver/operation/operation_interface.rs2
-rw-r--r--crates/shirabe/src/dependency_resolver/operation/uninstall_operation.rs8
-rw-r--r--crates/shirabe/src/dependency_resolver/operation/update_operation.rs16
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,
)
}