aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe')
-rw-r--r--crates/shirabe/src/dependency_resolver/lock_transaction.rs15
-rw-r--r--crates/shirabe/src/package/alias_package.rs4
-rw-r--r--crates/shirabe/src/package/complete_package.rs4
-rw-r--r--crates/shirabe/src/package/handle.rs10
-rw-r--r--crates/shirabe/src/package/package.rs3
-rw-r--r--crates/shirabe/src/package/package_interface.rs2
-rw-r--r--crates/shirabe/src/package/root_package.rs3
7 files changed, 31 insertions, 10 deletions
diff --git a/crates/shirabe/src/dependency_resolver/lock_transaction.rs b/crates/shirabe/src/dependency_resolver/lock_transaction.rs
index dd3dd97..aa7ae25 100644
--- a/crates/shirabe/src/dependency_resolver/lock_transaction.rs
+++ b/crates/shirabe/src/dependency_resolver/lock_transaction.rs
@@ -145,12 +145,9 @@ impl LockTransaction {
continue;
}
- if let Some(concrete_pkg) = present_package.as_package() {
- // TODO(phase-c): mirror the source url/mirrors of the present package onto it via
- // its handle setters once the per-field copy semantics are reviewed.
- let _ = concrete_pkg;
- let _ = package.get_source_url();
- let _ = package.get_source_mirrors();
+ if present_package.as_package().is_some() {
+ present_package.set_source_url(package.get_source_url());
+ present_package.set_source_mirrors(package.get_source_mirrors());
}
if present_package.get_dist_type() != package.get_dist_type() {
@@ -167,11 +164,9 @@ impl LockTransaction {
&package.get_dist_url().unwrap(),
)
.unwrap_or_else(|_| package.get_dist_url().unwrap());
- // TODO(phase-c): apply new_dist_url onto present_package via its handle setter.
- let _ = new_dist_url;
+ present_package.set_dist_url(Some(new_dist_url));
}
- // TODO(phase-c): apply dist mirrors onto present_package via its handle setter.
- let _ = package.get_dist_mirrors();
+ present_package.set_dist_mirrors(package.get_dist_mirrors());
return present_package.clone();
}
diff --git a/crates/shirabe/src/package/alias_package.rs b/crates/shirabe/src/package/alias_package.rs
index 69e0723..ff846a6 100644
--- a/crates/shirabe/src/package/alias_package.rs
+++ b/crates/shirabe/src/package/alias_package.rs
@@ -425,6 +425,10 @@ impl PackageInterface for AliasPackage {
self.alias_of.is_default_branch()
}
+ fn set_source_url(&mut self, url: Option<String>) {
+ self.alias_of.set_source_url(url);
+ }
+
fn set_dist_url(&mut self, url: Option<String>) {
self.alias_of.set_dist_url(url);
}
diff --git a/crates/shirabe/src/package/complete_package.rs b/crates/shirabe/src/package/complete_package.rs
index a598389..55c7654 100644
--- a/crates/shirabe/src/package/complete_package.rs
+++ b/crates/shirabe/src/package/complete_package.rs
@@ -352,6 +352,10 @@ impl PackageInterface for CompletePackage {
todo!()
}
+ fn set_source_url(&mut self, url: Option<String>) {
+ todo!()
+ }
+
fn set_dist_url(&mut self, url: Option<String>) {
todo!()
}
diff --git a/crates/shirabe/src/package/handle.rs b/crates/shirabe/src/package/handle.rs
index e939c3a..746e2ce 100644
--- a/crates/shirabe/src/package/handle.rs
+++ b/crates/shirabe/src/package/handle.rs
@@ -309,6 +309,9 @@ macro_rules! delegate_package_interface_to_inner {
fn set_source_reference(&mut self, reference: Option<String>) {
self.$field.set_source_reference(reference);
}
+ fn set_source_url(&mut self, url: Option<String>) {
+ self.$field.set_source_url(url);
+ }
fn set_dist_url(&mut self, url: Option<String>) {
self.$field.set_dist_url(url);
}
@@ -650,6 +653,13 @@ macro_rules! impl_package_interface_handle {
.set_source_reference(reference);
}
+ pub fn set_source_url(&self, url: Option<String>) {
+ self.0
+ .borrow_mut()
+ .as_package_interface_mut()
+ .set_source_url(url);
+ }
+
pub fn set_dist_url(&self, url: Option<String>) {
self.0
.borrow_mut()
diff --git a/crates/shirabe/src/package/package.rs b/crates/shirabe/src/package/package.rs
index 680443e..ba9e3f9 100644
--- a/crates/shirabe/src/package/package.rs
+++ b/crates/shirabe/src/package/package.rs
@@ -749,6 +749,9 @@ impl PackageInterface for Package {
fn set_source_reference(&mut self, _reference: Option<String>) {
todo!()
}
+ fn set_source_url(&mut self, _url: Option<String>) {
+ todo!()
+ }
fn set_dist_url(&mut self, _url: Option<String>) {
todo!()
}
diff --git a/crates/shirabe/src/package/package_interface.rs b/crates/shirabe/src/package/package_interface.rs
index 92729a4..0ab2a09 100644
--- a/crates/shirabe/src/package/package_interface.rs
+++ b/crates/shirabe/src/package/package_interface.rs
@@ -279,6 +279,8 @@ pub trait PackageInterface: std::fmt::Display + std::fmt::Debug {
fn set_source_reference(&mut self, reference: Option<String>);
+ fn set_source_url(&mut self, url: Option<String>);
+
fn set_dist_url(&mut self, url: Option<String>);
fn set_dist_type(&mut self, r#type: Option<String>);
diff --git a/crates/shirabe/src/package/root_package.rs b/crates/shirabe/src/package/root_package.rs
index 028f43b..5a719de 100644
--- a/crates/shirabe/src/package/root_package.rs
+++ b/crates/shirabe/src/package/root_package.rs
@@ -381,6 +381,9 @@ impl PackageInterface for RootPackage {
fn set_source_reference(&mut self, _reference: Option<String>) {
todo!()
}
+ fn set_source_url(&mut self, _url: Option<String>) {
+ todo!()
+ }
fn set_dist_url(&mut self, _url: Option<String>) {
todo!()
}