diff options
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/lock_transaction.rs | 15 | ||||
| -rw-r--r-- | crates/shirabe/src/package/alias_package.rs | 4 | ||||
| -rw-r--r-- | crates/shirabe/src/package/complete_package.rs | 4 | ||||
| -rw-r--r-- | crates/shirabe/src/package/handle.rs | 10 | ||||
| -rw-r--r-- | crates/shirabe/src/package/package.rs | 3 | ||||
| -rw-r--r-- | crates/shirabe/src/package/package_interface.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe/src/package/root_package.rs | 3 |
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!() } |
