aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-28 16:32:33 +0900
committernsfisis <nsfisis@gmail.com>2026-06-28 16:32:59 +0900
commit212f5cd75b1403ee75ffa44d7ebdb181174340c0 (patch)
tree9a92a3e2b395f6c4fb652330f9a1d9d407d43088 /crates/shirabe
parente2955f0acb9e82448b1f72354e7e8dd6ab229ad5 (diff)
downloadphp-shirabe-212f5cd75b1403ee75ffa44d7ebdb181174340c0.tar.gz
php-shirabe-212f5cd75b1403ee75ffa44d7ebdb181174340c0.tar.zst
php-shirabe-212f5cd75b1403ee75ffa44d7ebdb181174340c0.zip
feat(package): impl alias getter delegation via owned String returns
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe')
-rw-r--r--crates/shirabe/src/dependency_resolver/pool_builder.rs2
-rw-r--r--crates/shirabe/src/package/alias_package.rs38
-rw-r--r--crates/shirabe/src/package/base_package.rs6
-rw-r--r--crates/shirabe/src/package/complete_alias_package.rs18
-rw-r--r--crates/shirabe/src/package/complete_package.rs42
-rw-r--r--crates/shirabe/src/package/complete_package_interface.rs8
-rw-r--r--crates/shirabe/src/package/handle.rs60
-rw-r--r--crates/shirabe/src/package/package.rs80
-rw-r--r--crates/shirabe/src/package/package_interface.rs20
-rw-r--r--crates/shirabe/src/package/root_alias_package.rs8
-rw-r--r--crates/shirabe/src/package/root_package.rs78
11 files changed, 165 insertions, 195 deletions
diff --git a/crates/shirabe/src/dependency_resolver/pool_builder.rs b/crates/shirabe/src/dependency_resolver/pool_builder.rs
index 843818f..986cbdf 100644
--- a/crates/shirabe/src/dependency_resolver/pool_builder.rs
+++ b/crates/shirabe/src/dependency_resolver/pool_builder.rs
@@ -604,7 +604,7 @@ impl PoolBuilder {
if !request.is_locked_package(package.clone())
&& !request.is_fixed_package(package.clone())
{
- package.set_source_dist_references(reference);
+ package.set_source_dist_references(reference.clone());
}
}
diff --git a/crates/shirabe/src/package/alias_package.rs b/crates/shirabe/src/package/alias_package.rs
index b05387d..5af61b2 100644
--- a/crates/shirabe/src/package/alias_package.rs
+++ b/crates/shirabe/src/package/alias_package.rs
@@ -285,24 +285,24 @@ impl PackageInterface for AliasPackage {
self.alias_of.set_installation_source(r#type);
}
- fn get_installation_source(&self) -> Option<&str> {
- todo!("AliasPackage::get_installation_source cannot return &str across the aliasOf handle")
+ fn get_installation_source(&self) -> Option<String> {
+ self.alias_of.get_installation_source()
}
- fn get_source_type(&self) -> Option<&str> {
- todo!("AliasPackage::get_source_type cannot return &str across the aliasOf handle")
+ fn get_source_type(&self) -> Option<String> {
+ self.alias_of.get_source_type()
}
- fn get_source_url(&self) -> Option<&str> {
- todo!("AliasPackage::get_source_url cannot return &str across the aliasOf handle")
+ fn get_source_url(&self) -> Option<String> {
+ self.alias_of.get_source_url()
}
fn get_source_urls(&self) -> Vec<String> {
self.alias_of.get_source_urls()
}
- fn get_source_reference(&self) -> Option<&str> {
- todo!("AliasPackage::get_source_reference cannot return &str across the aliasOf handle")
+ fn get_source_reference(&self) -> Option<String> {
+ self.alias_of.get_source_reference()
}
fn set_source_reference(&mut self, reference: Option<String>) {
@@ -317,28 +317,28 @@ impl PackageInterface for AliasPackage {
self.alias_of.get_source_mirrors()
}
- fn get_dist_type(&self) -> Option<&str> {
- todo!("AliasPackage::get_dist_type cannot return &str across the aliasOf handle")
+ fn get_dist_type(&self) -> Option<String> {
+ self.alias_of.get_dist_type()
}
- fn get_dist_url(&self) -> Option<&str> {
- todo!("AliasPackage::get_dist_url cannot return &str across the aliasOf handle")
+ fn get_dist_url(&self) -> Option<String> {
+ self.alias_of.get_dist_url()
}
fn get_dist_urls(&self) -> Vec<String> {
self.alias_of.get_dist_urls()
}
- fn get_dist_reference(&self) -> Option<&str> {
- todo!("AliasPackage::get_dist_reference cannot return &str across the aliasOf handle")
+ fn get_dist_reference(&self) -> Option<String> {
+ self.alias_of.get_dist_reference()
}
fn set_dist_reference(&mut self, reference: Option<String>) {
self.alias_of.set_dist_reference(reference);
}
- fn get_dist_sha1_checksum(&self) -> Option<&str> {
- todo!("AliasPackage::get_dist_sha1_checksum cannot return &str across the aliasOf handle")
+ fn get_dist_sha1_checksum(&self) -> Option<String> {
+ self.alias_of.get_dist_sha1_checksum()
}
fn set_transport_options(&mut self, options: IndexMap<String, PhpMixed>) {
@@ -385,8 +385,8 @@ impl PackageInterface for AliasPackage {
self.alias_of.get_suggests()
}
- fn get_notification_url(&self) -> Option<&str> {
- todo!("AliasPackage::get_notification_url cannot return &str across the aliasOf handle")
+ fn get_notification_url(&self) -> Option<String> {
+ self.alias_of.get_notification_url()
}
fn is_default_branch(&self) -> bool {
@@ -405,7 +405,7 @@ impl PackageInterface for AliasPackage {
self.alias_of.set_dist_type(r#type);
}
- fn set_source_dist_references(&mut self, reference: &str) {
+ fn set_source_dist_references(&mut self, reference: String) {
self.alias_of.set_source_dist_references(reference);
}
diff --git a/crates/shirabe/src/package/base_package.rs b/crates/shirabe/src/package/base_package.rs
index d7b6978..60211d2 100644
--- a/crates/shirabe/src/package/base_package.rs
+++ b/crates/shirabe/src/package/base_package.rs
@@ -96,14 +96,14 @@ pub trait BasePackage: PackageInterface + std::fmt::Display {
fn get_full_pretty_version(&self, truncate: bool, display_mode: DisplayMode) -> String {
if display_mode == DisplayMode::SourceRefIfDev
&& (!self.is_dev()
- || (!["hg", "git"].contains(&self.get_source_type().unwrap_or_default())
+ || (!["hg", "git"].contains(&self.get_source_type().unwrap_or_default().as_str())
&& (self.get_source_type().unwrap_or_default() != ""
|| self.get_dist_reference().unwrap_or_default() == "")))
{
return self.get_pretty_version().to_string();
}
- let reference: Option<&str> = match display_mode {
+ let reference: Option<String> = match display_mode {
DisplayMode::SourceRefIfDev => {
if self.get_source_reference().unwrap_or_default() != "" {
self.get_source_reference()
@@ -120,7 +120,7 @@ pub trait BasePackage: PackageInterface + std::fmt::Display {
Some(r) => r,
};
- if truncate && reference.len() == 40 && self.get_source_type() != Some("svn") {
+ if truncate && reference.len() == 40 && self.get_source_type().as_deref() != Some("svn") {
return format!("{} {}", self.get_pretty_version(), &reference[..7]);
}
diff --git a/crates/shirabe/src/package/complete_alias_package.rs b/crates/shirabe/src/package/complete_alias_package.rs
index 54b4486..2fff592 100644
--- a/crates/shirabe/src/package/complete_alias_package.rs
+++ b/crates/shirabe/src/package/complete_alias_package.rs
@@ -84,16 +84,16 @@ impl CompletePackageInterface for CompleteAliasPackage {
self.alias_of.set_keywords(keywords);
}
- fn get_description(&self) -> Option<&str> {
- todo!("CompleteAliasPackage::get_description cannot return &str across the aliasOf handle")
+ fn get_description(&self) -> Option<String> {
+ self.alias_of.get_description()
}
fn set_description(&mut self, description: String) {
self.alias_of.set_description(description);
}
- fn get_homepage(&self) -> Option<&str> {
- todo!("CompleteAliasPackage::get_homepage cannot return &str across the aliasOf handle")
+ fn get_homepage(&self) -> Option<String> {
+ self.alias_of.get_homepage()
}
fn set_homepage(&mut self, homepage: String) {
@@ -128,18 +128,16 @@ impl CompletePackageInterface for CompleteAliasPackage {
self.alias_of.is_abandoned()
}
- fn get_replacement_package(&self) -> Option<&str> {
- todo!(
- "CompleteAliasPackage::get_replacement_package cannot return &str across the aliasOf handle"
- )
+ fn get_replacement_package(&self) -> Option<String> {
+ self.alias_of.get_replacement_package()
}
fn set_abandoned(&mut self, abandoned: PhpMixed) {
self.alias_of.set_abandoned(abandoned);
}
- fn get_archive_name(&self) -> Option<&str> {
- todo!("CompleteAliasPackage::get_archive_name cannot return &str across the aliasOf handle")
+ fn get_archive_name(&self) -> Option<String> {
+ self.alias_of.get_archive_name()
}
fn set_archive_name(&mut self, name: String) {
diff --git a/crates/shirabe/src/package/complete_package.rs b/crates/shirabe/src/package/complete_package.rs
index d19b041..0c7ecf4 100644
--- a/crates/shirabe/src/package/complete_package.rs
+++ b/crates/shirabe/src/package/complete_package.rs
@@ -94,16 +94,16 @@ impl CompletePackageInterface for CompletePackage {
self.description = Some(description);
}
- fn get_description(&self) -> Option<&str> {
- self.description.as_deref()
+ fn get_description(&self) -> Option<String> {
+ self.description.clone()
}
fn set_homepage(&mut self, homepage: String) {
self.homepage = Some(homepage);
}
- fn get_homepage(&self) -> Option<&str> {
- self.homepage.as_deref()
+ fn get_homepage(&self) -> Option<String> {
+ self.homepage.clone()
}
fn set_support(&mut self, support: IndexMap<String, String>) {
@@ -134,9 +134,9 @@ impl CompletePackageInterface for CompletePackage {
self.abandoned = abandoned;
}
- fn get_replacement_package(&self) -> Option<&str> {
+ fn get_replacement_package(&self) -> Option<String> {
match &self.abandoned {
- PhpMixed::String(s) => Some(s.as_str()),
+ PhpMixed::String(s) => Some(s.clone()),
_ => None,
}
}
@@ -145,8 +145,8 @@ impl CompletePackageInterface for CompletePackage {
self.archive_name = Some(name);
}
- fn get_archive_name(&self) -> Option<&str> {
- self.archive_name.as_deref()
+ fn get_archive_name(&self) -> Option<String> {
+ self.archive_name.clone()
}
fn set_archive_excludes(&mut self, excludes: Vec<String>) {
@@ -188,7 +188,7 @@ impl PackageInterface for CompletePackage {
}
fn get_type(&self) -> String {
- PackageInterface::get_type(&self.inner)
+ self.inner.get_type()
}
fn get_target_dir(&self) -> Option<String> {
@@ -203,15 +203,15 @@ impl PackageInterface for CompletePackage {
self.inner.set_installation_source(r#type);
}
- fn get_installation_source(&self) -> Option<&str> {
+ fn get_installation_source(&self) -> Option<String> {
self.inner.get_installation_source()
}
- fn get_source_type(&self) -> Option<&str> {
+ fn get_source_type(&self) -> Option<String> {
self.inner.get_source_type()
}
- fn get_source_url(&self) -> Option<&str> {
+ fn get_source_url(&self) -> Option<String> {
self.inner.get_source_url()
}
@@ -219,7 +219,7 @@ impl PackageInterface for CompletePackage {
self.inner.get_source_urls()
}
- fn get_source_reference(&self) -> Option<&str> {
+ fn get_source_reference(&self) -> Option<String> {
self.inner.get_source_reference()
}
@@ -231,11 +231,11 @@ impl PackageInterface for CompletePackage {
self.inner.set_source_mirrors(mirrors);
}
- fn get_dist_type(&self) -> Option<&str> {
+ fn get_dist_type(&self) -> Option<String> {
self.inner.get_dist_type()
}
- fn get_dist_url(&self) -> Option<&str> {
+ fn get_dist_url(&self) -> Option<String> {
self.inner.get_dist_url()
}
@@ -243,11 +243,11 @@ impl PackageInterface for CompletePackage {
self.inner.get_dist_urls()
}
- fn get_dist_reference(&self) -> Option<&str> {
+ fn get_dist_reference(&self) -> Option<String> {
self.inner.get_dist_reference()
}
- fn get_dist_sha1_checksum(&self) -> Option<&str> {
+ fn get_dist_sha1_checksum(&self) -> Option<String> {
self.inner.get_dist_sha1_checksum()
}
@@ -268,7 +268,7 @@ impl PackageInterface for CompletePackage {
}
fn get_full_pretty_version(&self, truncate: bool, display_mode: DisplayMode) -> String {
- PackageInterface::get_full_pretty_version(&self.inner, truncate, display_mode)
+ self.inner.get_full_pretty_version(truncate, display_mode)
}
fn get_release_date(&self) -> Option<chrono::DateTime<chrono::Utc>> {
@@ -338,7 +338,7 @@ impl PackageInterface for CompletePackage {
self.inner.get_unique_name()
}
- fn get_notification_url(&self) -> Option<&str> {
+ fn get_notification_url(&self) -> Option<String> {
self.inner.get_notification_url()
}
@@ -378,8 +378,8 @@ impl PackageInterface for CompletePackage {
self.inner.set_dist_reference(reference);
}
- fn set_source_dist_references(&mut self, reference: &str) {
- PackageInterface::set_source_dist_references(&mut self.inner, reference);
+ fn set_source_dist_references(&mut self, reference: String) {
+ self.inner.set_source_dist_references(reference);
}
}
diff --git a/crates/shirabe/src/package/complete_package_interface.rs b/crates/shirabe/src/package/complete_package_interface.rs
index 8a7ee25..42b35ef 100644
--- a/crates/shirabe/src/package/complete_package_interface.rs
+++ b/crates/shirabe/src/package/complete_package_interface.rs
@@ -22,11 +22,11 @@ pub trait CompletePackageInterface: PackageInterface {
fn set_keywords(&mut self, keywords: Vec<String>);
- fn get_description(&self) -> Option<&str>;
+ fn get_description(&self) -> Option<String>;
fn set_description(&mut self, description: String);
- fn get_homepage(&self) -> Option<&str>;
+ fn get_homepage(&self) -> Option<String>;
fn set_homepage(&mut self, homepage: String);
@@ -44,11 +44,11 @@ pub trait CompletePackageInterface: PackageInterface {
fn is_abandoned(&self) -> bool;
- fn get_replacement_package(&self) -> Option<&str>;
+ fn get_replacement_package(&self) -> Option<String>;
fn set_abandoned(&mut self, abandoned: PhpMixed);
- fn get_archive_name(&self) -> Option<&str>;
+ fn get_archive_name(&self) -> Option<String>;
fn set_archive_name(&mut self, name: String);
diff --git a/crates/shirabe/src/package/handle.rs b/crates/shirabe/src/package/handle.rs
index e75a1a0..39121fa 100644
--- a/crates/shirabe/src/package/handle.rs
+++ b/crates/shirabe/src/package/handle.rs
@@ -213,19 +213,19 @@ macro_rules! delegate_package_interface_to_inner {
fn set_installation_source(&mut self, r#type: Option<String>) {
self.$field.set_installation_source(r#type);
}
- fn get_installation_source(&self) -> Option<&str> {
+ fn get_installation_source(&self) -> Option<String> {
self.$field.get_installation_source()
}
- fn get_source_type(&self) -> Option<&str> {
+ fn get_source_type(&self) -> Option<String> {
self.$field.get_source_type()
}
- fn get_source_url(&self) -> Option<&str> {
+ fn get_source_url(&self) -> Option<String> {
self.$field.get_source_url()
}
fn get_source_urls(&self) -> Vec<String> {
self.$field.get_source_urls()
}
- fn get_source_reference(&self) -> Option<&str> {
+ fn get_source_reference(&self) -> Option<String> {
self.$field.get_source_reference()
}
fn get_source_mirrors(&self) -> Option<Vec<crate::package::Mirror>> {
@@ -234,19 +234,19 @@ macro_rules! delegate_package_interface_to_inner {
fn set_source_mirrors(&mut self, mirrors: Option<Vec<crate::package::Mirror>>) {
self.$field.set_source_mirrors(mirrors);
}
- fn get_dist_type(&self) -> Option<&str> {
+ fn get_dist_type(&self) -> Option<String> {
self.$field.get_dist_type()
}
- fn get_dist_url(&self) -> Option<&str> {
+ fn get_dist_url(&self) -> Option<String> {
self.$field.get_dist_url()
}
fn get_dist_urls(&self) -> Vec<String> {
self.$field.get_dist_urls()
}
- fn get_dist_reference(&self) -> Option<&str> {
+ fn get_dist_reference(&self) -> Option<String> {
self.$field.get_dist_reference()
}
- fn get_dist_sha1_checksum(&self) -> Option<&str> {
+ fn get_dist_sha1_checksum(&self) -> Option<String> {
self.$field.get_dist_sha1_checksum()
}
fn get_dist_mirrors(&self) -> Option<Vec<crate::package::Mirror>> {
@@ -321,7 +321,7 @@ macro_rules! delegate_package_interface_to_inner {
fn get_unique_name(&self) -> String {
self.$field.get_unique_name()
}
- fn get_notification_url(&self) -> Option<&str> {
+ fn get_notification_url(&self) -> Option<String> {
self.$field.get_notification_url()
}
fn get_pretty_string(&self) -> String {
@@ -356,7 +356,7 @@ macro_rules! delegate_package_interface_to_inner {
fn set_dist_reference(&mut self, reference: Option<String>) {
self.$field.set_dist_reference(reference);
}
- fn set_source_dist_references(&mut self, reference: &str) {
+ fn set_source_dist_references(&mut self, reference: String) {
self.$field.set_source_dist_references(reference);
}
}
@@ -432,23 +432,14 @@ macro_rules! impl_package_interface_handle {
.borrow()
.as_package_interface()
.get_installation_source()
- .map(str::to_string)
}
pub fn get_source_type(&self) -> Option<String> {
- self.0
- .borrow()
- .as_package_interface()
- .get_source_type()
- .map(str::to_string)
+ self.0.borrow().as_package_interface().get_source_type()
}
pub fn get_source_url(&self) -> Option<String> {
- self.0
- .borrow()
- .as_package_interface()
- .get_source_url()
- .map(str::to_string)
+ self.0.borrow().as_package_interface().get_source_url()
}
pub fn get_source_urls(&self) -> Vec<String> {
@@ -460,7 +451,6 @@ macro_rules! impl_package_interface_handle {
.borrow()
.as_package_interface()
.get_source_reference()
- .map(str::to_string)
}
pub fn get_source_mirrors(&self) -> Option<Vec<crate::package::Mirror>> {
@@ -475,19 +465,11 @@ macro_rules! impl_package_interface_handle {
}
pub fn get_dist_type(&self) -> Option<String> {
- self.0
- .borrow()
- .as_package_interface()
- .get_dist_type()
- .map(str::to_string)
+ self.0.borrow().as_package_interface().get_dist_type()
}
pub fn get_dist_url(&self) -> Option<String> {
- self.0
- .borrow()
- .as_package_interface()
- .get_dist_url()
- .map(str::to_string)
+ self.0.borrow().as_package_interface().get_dist_url()
}
pub fn get_dist_urls(&self) -> Vec<String> {
@@ -495,11 +477,7 @@ macro_rules! impl_package_interface_handle {
}
pub fn get_dist_reference(&self) -> Option<String> {
- self.0
- .borrow()
- .as_package_interface()
- .get_dist_reference()
- .map(str::to_string)
+ self.0.borrow().as_package_interface().get_dist_reference()
}
pub fn get_dist_sha1_checksum(&self) -> Option<String> {
@@ -507,7 +485,6 @@ macro_rules! impl_package_interface_handle {
.borrow()
.as_package_interface()
.get_dist_sha1_checksum()
- .map(str::to_string)
}
pub fn get_dist_mirrors(&self) -> Option<Vec<crate::package::Mirror>> {
@@ -641,7 +618,6 @@ macro_rules! impl_package_interface_handle {
.borrow()
.as_package_interface()
.get_notification_url()
- .map(str::to_string)
}
pub fn get_pretty_string(&self) -> String {
@@ -706,7 +682,7 @@ macro_rules! impl_package_interface_handle {
.set_dist_reference(reference);
}
- pub fn set_source_dist_references(&self, reference: &str) {
+ pub fn set_source_dist_references(&self, reference: String) {
self.0
.borrow_mut()
.as_package_interface_mut()
@@ -794,7 +770,6 @@ macro_rules! impl_complete_package_interface_handle {
.as_complete_package_interface()
.expect("CompletePackage handle invariant")
.get_description()
- .map(str::to_string)
}
pub fn set_description(&self, description: String) {
@@ -811,7 +786,6 @@ macro_rules! impl_complete_package_interface_handle {
.as_complete_package_interface()
.expect("CompletePackage handle invariant")
.get_homepage()
- .map(str::to_string)
}
pub fn set_homepage(&self, homepage: String) {
@@ -889,7 +863,6 @@ macro_rules! impl_complete_package_interface_handle {
.as_complete_package_interface()
.expect("CompletePackage handle invariant")
.get_replacement_package()
- .map(str::to_string)
}
pub fn set_abandoned(&self, abandoned: shirabe_php_shim::PhpMixed) {
@@ -906,7 +879,6 @@ macro_rules! impl_complete_package_interface_handle {
.as_complete_package_interface()
.expect("CompletePackage handle invariant")
.get_archive_name()
- .map(str::to_string)
}
pub fn set_archive_name(&self, name: String) {
diff --git a/crates/shirabe/src/package/package.rs b/crates/shirabe/src/package/package.rs
index a0497b2..7fa9452 100644
--- a/crates/shirabe/src/package/package.rs
+++ b/crates/shirabe/src/package/package.rs
@@ -169,32 +169,32 @@ impl Package {
self.installation_source = r#type;
}
- pub fn get_installation_source(&self) -> Option<&str> {
- self.installation_source.as_deref()
+ pub fn get_installation_source(&self) -> Option<String> {
+ self.installation_source.clone()
}
pub fn set_source_type(&mut self, r#type: Option<String>) {
self.source_type = r#type;
}
- pub fn get_source_type(&self) -> Option<&str> {
- self.source_type.as_deref()
+ pub fn get_source_type(&self) -> Option<String> {
+ self.source_type.clone()
}
pub fn set_source_url(&mut self, url: Option<String>) {
self.source_url = url;
}
- pub fn get_source_url(&self) -> Option<&str> {
- self.source_url.as_deref()
+ pub fn get_source_url(&self) -> Option<String> {
+ self.source_url.clone()
}
pub fn set_source_reference(&mut self, reference: Option<String>) {
self.source_reference = reference;
}
- pub fn get_source_reference(&self) -> Option<&str> {
- self.source_reference.as_deref()
+ pub fn get_source_reference(&self) -> Option<String> {
+ self.source_reference.clone()
}
pub fn set_source_mirrors(&mut self, mirrors: Option<Vec<Mirror>>) {
@@ -222,8 +222,8 @@ impl Package {
};
}
- pub fn get_dist_type(&self) -> Option<&str> {
- self.dist_type.as_deref()
+ pub fn get_dist_type(&self) -> Option<String> {
+ self.dist_type.clone()
}
pub fn set_dist_url(&mut self, url: Option<String>) {
@@ -233,24 +233,24 @@ impl Package {
};
}
- pub fn get_dist_url(&self) -> Option<&str> {
- self.dist_url.as_deref()
+ pub fn get_dist_url(&self) -> Option<String> {
+ self.dist_url.clone()
}
pub fn set_dist_reference(&mut self, reference: Option<String>) {
self.dist_reference = reference;
}
- pub fn get_dist_reference(&self) -> Option<&str> {
- self.dist_reference.as_deref()
+ pub fn get_dist_reference(&self) -> Option<String> {
+ self.dist_reference.clone()
}
pub fn set_dist_sha1_checksum(&mut self, sha1checksum: Option<String>) {
self.dist_sha1_checksum = sha1checksum;
}
- pub fn get_dist_sha1_checksum(&self) -> Option<&str> {
- self.dist_sha1_checksum.as_deref()
+ pub fn get_dist_sha1_checksum(&self) -> Option<String> {
+ self.dist_sha1_checksum.clone()
}
pub fn set_dist_mirrors(&mut self, mirrors: Option<Vec<Mirror>>) {
@@ -400,8 +400,8 @@ impl Package {
self.notification_url = Some(notification_url);
}
- pub fn get_notification_url(&self) -> Option<&str> {
- self.notification_url.as_deref()
+ pub fn get_notification_url(&self) -> Option<String> {
+ self.notification_url.clone()
}
pub fn set_is_default_branch(&mut self, default_branch: bool) {
@@ -420,14 +420,14 @@ impl Package {
if self.get_dist_url().is_some()
&& Preg::is_match(
"{^https?://(?:(?:www\\.)?bitbucket\\.org|(api\\.)?github\\.com|(?:www\\.)?gitlab\\.com)/}i",
- self.get_dist_url().unwrap_or(""),
+ &self.get_dist_url().unwrap_or_default(),
)
{
self.set_dist_reference(Some(reference.clone()));
self.set_dist_url(Some(Preg::replace(
"{(?<=/|sha=)[a-f0-9]{40}(?=/|$)}i",
&reference,
- self.get_dist_url().unwrap_or(""),
+ &self.get_dist_url().unwrap_or_default(),
)));
} else if self.get_dist_reference().is_some() {
// update the dist reference if there was one, but if none was provided ignore it
@@ -623,20 +623,20 @@ impl PackageInterface for Package {
fn set_installation_source(&mut self, r#type: Option<String>) {
self.installation_source = r#type;
}
- fn get_installation_source(&self) -> Option<&str> {
- self.installation_source.as_deref()
+ fn get_installation_source(&self) -> Option<String> {
+ self.installation_source.clone()
}
- fn get_source_type(&self) -> Option<&str> {
- self.source_type.as_deref()
+ fn get_source_type(&self) -> Option<String> {
+ self.source_type.clone()
}
- fn get_source_url(&self) -> Option<&str> {
- self.source_url.as_deref()
+ fn get_source_url(&self) -> Option<String> {
+ self.source_url.clone()
}
fn get_source_urls(&self) -> Vec<String> {
Package::get_source_urls(self)
}
- fn get_source_reference(&self) -> Option<&str> {
- self.source_reference.as_deref()
+ fn get_source_reference(&self) -> Option<String> {
+ self.source_reference.clone()
}
fn get_source_mirrors(&self) -> Option<Vec<Mirror>> {
self.source_mirrors.clone()
@@ -644,20 +644,20 @@ impl PackageInterface for Package {
fn set_source_mirrors(&mut self, mirrors: Option<Vec<Mirror>>) {
self.source_mirrors = mirrors;
}
- fn get_dist_type(&self) -> Option<&str> {
- self.dist_type.as_deref()
+ fn get_dist_type(&self) -> Option<String> {
+ self.dist_type.clone()
}
- fn get_dist_url(&self) -> Option<&str> {
- self.dist_url.as_deref()
+ fn get_dist_url(&self) -> Option<String> {
+ self.dist_url.clone()
}
fn get_dist_urls(&self) -> Vec<String> {
Package::get_dist_urls(self)
}
- fn get_dist_reference(&self) -> Option<&str> {
- self.dist_reference.as_deref()
+ fn get_dist_reference(&self) -> Option<String> {
+ self.dist_reference.clone()
}
- fn get_dist_sha1_checksum(&self) -> Option<&str> {
- self.dist_sha1_checksum.as_deref()
+ fn get_dist_sha1_checksum(&self) -> Option<String> {
+ self.dist_sha1_checksum.clone()
}
fn get_dist_mirrors(&self) -> Option<Vec<Mirror>> {
self.dist_mirrors.clone()
@@ -735,8 +735,8 @@ impl PackageInterface for Package {
fn get_unique_name(&self) -> String {
format!("{}-{}", self.get_name(), self.get_version())
}
- fn get_notification_url(&self) -> Option<&str> {
- self.notification_url.as_deref()
+ fn get_notification_url(&self) -> Option<String> {
+ self.notification_url.clone()
}
fn get_pretty_string(&self) -> String {
format!("{} {}", self.get_pretty_name(), self.get_pretty_version())
@@ -771,7 +771,7 @@ impl PackageInterface for Package {
fn set_dist_reference(&mut self, reference: Option<String>) {
self.dist_reference = reference;
}
- fn set_source_dist_references(&mut self, reference: &str) {
- Package::set_source_dist_references(self, reference.to_string());
+ fn set_source_dist_references(&mut self, reference: String) {
+ Package::set_source_dist_references(self, reference);
}
}
diff --git a/crates/shirabe/src/package/package_interface.rs b/crates/shirabe/src/package/package_interface.rs
index 621c73f..42a2ca2 100644
--- a/crates/shirabe/src/package/package_interface.rs
+++ b/crates/shirabe/src/package/package_interface.rs
@@ -84,17 +84,17 @@ pub trait PackageInterface: std::fmt::Display + std::fmt::Debug {
///
/// @return ?string source/dist
/// @phpstan-return 'source'|'dist'|null
- fn get_installation_source(&self) -> Option<&str>;
+ fn get_installation_source(&self) -> Option<String>;
/// Returns the repository type of this package, e.g. git, svn
///
/// @return ?string The repository type
- fn get_source_type(&self) -> Option<&str>;
+ fn get_source_type(&self) -> Option<String>;
/// Returns the repository url of this package, e.g. git://github.com/naderman/composer.git
///
/// @return ?string The repository url
- fn get_source_url(&self) -> Option<&str>;
+ fn get_source_url(&self) -> Option<String>;
/// Returns the repository urls of this package including mirrors, e.g. git://github.com/naderman/composer.git
///
@@ -104,7 +104,7 @@ pub trait PackageInterface: std::fmt::Display + std::fmt::Debug {
/// Returns the repository reference of this package, e.g. master, 1.0.0 or a commit hash for git
///
/// @return ?string The repository reference
- fn get_source_reference(&self) -> Option<&str>;
+ fn get_source_reference(&self) -> Option<String>;
/// Returns the source mirrors of this package
///
@@ -117,12 +117,12 @@ pub trait PackageInterface: std::fmt::Display + std::fmt::Debug {
/// Returns the type of the distribution archive of this version, e.g. zip, tarball
///
/// @return ?string The repository type
- fn get_dist_type(&self) -> Option<&str>;
+ fn get_dist_type(&self) -> Option<String>;
/// Returns the url of the distribution archive of this version
///
/// @return ?non-empty-string
- fn get_dist_url(&self) -> Option<&str>;
+ fn get_dist_url(&self) -> Option<String>;
/// Returns the urls of the distribution archive of this version, including mirrors
///
@@ -130,12 +130,12 @@ pub trait PackageInterface: std::fmt::Display + std::fmt::Debug {
fn get_dist_urls(&self) -> Vec<String>;
/// Returns the reference of the distribution archive of this version, e.g. master, 1.0.0 or a commit hash for git
- fn get_dist_reference(&self) -> Option<&str>;
+ fn get_dist_reference(&self) -> Option<String>;
/// Returns the sha1 checksum for the distribution archive of this version
///
/// Can be an empty string which should be treated as null
- fn get_dist_sha1_checksum(&self) -> Option<&str>;
+ fn get_dist_sha1_checksum(&self) -> Option<String>;
/// Returns the dist mirrors of this package
///
@@ -269,7 +269,7 @@ pub trait PackageInterface: std::fmt::Display + std::fmt::Debug {
fn get_unique_name(&self) -> String;
/// Returns the package notification url
- fn get_notification_url(&self) -> Option<&str>;
+ fn get_notification_url(&self) -> Option<String>;
// PHP: __toString — implemented via std::fmt::Display supertrait
@@ -299,7 +299,7 @@ pub trait PackageInterface: std::fmt::Display + std::fmt::Debug {
fn set_dist_reference(&mut self, reference: Option<String>);
/// Set dist and source references and update dist URL for ones that contain a reference
- fn set_source_dist_references(&mut self, reference: &str);
+ fn set_source_dist_references(&mut self, reference: String);
fn as_alias_package(&self) -> Option<&crate::package::AliasPackage> {
None
diff --git a/crates/shirabe/src/package/root_alias_package.rs b/crates/shirabe/src/package/root_alias_package.rs
index 4d8bd6e..687ee59 100644
--- a/crates/shirabe/src/package/root_alias_package.rs
+++ b/crates/shirabe/src/package/root_alias_package.rs
@@ -202,7 +202,7 @@ impl CompletePackageInterface for RootAliasPackage {
self.inner.set_keywords(keywords);
}
- fn get_description(&self) -> Option<&str> {
+ fn get_description(&self) -> Option<String> {
self.inner.get_description()
}
@@ -210,7 +210,7 @@ impl CompletePackageInterface for RootAliasPackage {
self.inner.set_description(description);
}
- fn get_homepage(&self) -> Option<&str> {
+ fn get_homepage(&self) -> Option<String> {
self.inner.get_homepage()
}
@@ -246,7 +246,7 @@ impl CompletePackageInterface for RootAliasPackage {
self.inner.is_abandoned()
}
- fn get_replacement_package(&self) -> Option<&str> {
+ fn get_replacement_package(&self) -> Option<String> {
self.inner.get_replacement_package()
}
@@ -254,7 +254,7 @@ impl CompletePackageInterface for RootAliasPackage {
self.inner.set_abandoned(abandoned);
}
- fn get_archive_name(&self) -> Option<&str> {
+ fn get_archive_name(&self) -> Option<String> {
self.inner.get_archive_name()
}
diff --git a/crates/shirabe/src/package/root_package.rs b/crates/shirabe/src/package/root_package.rs
index 355f1f6..3ec7cbd 100644
--- a/crates/shirabe/src/package/root_package.rs
+++ b/crates/shirabe/src/package/root_package.rs
@@ -137,103 +137,103 @@ impl RootPackageInterface for RootPackage {
impl CompletePackageInterface for RootPackage {
fn get_scripts(&self) -> IndexMap<String, Vec<String>> {
- CompletePackageInterface::get_scripts(&self.inner)
+ self.inner.get_scripts()
}
fn set_scripts(&mut self, scripts: IndexMap<String, Vec<String>>) {
- CompletePackageInterface::set_scripts(&mut self.inner, scripts)
+ self.inner.set_scripts(scripts)
}
fn get_repositories(&self) -> IndexMap<String, PhpMixed> {
- CompletePackageInterface::get_repositories(&self.inner)
+ self.inner.get_repositories()
}
fn set_repositories(&mut self, repositories: IndexMap<String, PhpMixed>) {
- CompletePackageInterface::set_repositories(&mut self.inner, repositories)
+ self.inner.set_repositories(repositories)
}
fn get_license(&self) -> Vec<String> {
- CompletePackageInterface::get_license(&self.inner)
+ self.inner.get_license()
}
fn set_license(&mut self, license: Vec<String>) {
- CompletePackageInterface::set_license(&mut self.inner, license)
+ self.inner.set_license(license)
}
fn get_keywords(&self) -> Vec<String> {
- CompletePackageInterface::get_keywords(&self.inner)
+ self.inner.get_keywords()
}
fn set_keywords(&mut self, keywords: Vec<String>) {
- CompletePackageInterface::set_keywords(&mut self.inner, keywords)
+ self.inner.set_keywords(keywords)
}
- fn get_description(&self) -> Option<&str> {
- CompletePackageInterface::get_description(&self.inner)
+ fn get_description(&self) -> Option<String> {
+ self.inner.get_description()
}
fn set_description(&mut self, description: String) {
- CompletePackageInterface::set_description(&mut self.inner, description)
+ self.inner.set_description(description)
}
- fn get_homepage(&self) -> Option<&str> {
- CompletePackageInterface::get_homepage(&self.inner)
+ fn get_homepage(&self) -> Option<String> {
+ self.inner.get_homepage()
}
fn set_homepage(&mut self, homepage: String) {
- CompletePackageInterface::set_homepage(&mut self.inner, homepage)
+ self.inner.set_homepage(homepage)
}
fn get_authors(&self) -> Vec<IndexMap<String, String>> {
- CompletePackageInterface::get_authors(&self.inner)
+ self.inner.get_authors()
}
fn set_authors(&mut self, authors: Vec<IndexMap<String, String>>) {
- CompletePackageInterface::set_authors(&mut self.inner, authors)
+ self.inner.set_authors(authors)
}
fn get_support(&self) -> IndexMap<String, String> {
- CompletePackageInterface::get_support(&self.inner)
+ self.inner.get_support()
}
fn set_support(&mut self, support: IndexMap<String, String>) {
- CompletePackageInterface::set_support(&mut self.inner, support)
+ self.inner.set_support(support)
}
fn get_funding(&self) -> Vec<IndexMap<String, PhpMixed>> {
- CompletePackageInterface::get_funding(&self.inner)
+ self.inner.get_funding()
}
fn set_funding(&mut self, funding: Vec<IndexMap<String, PhpMixed>>) {
- CompletePackageInterface::set_funding(&mut self.inner, funding)
+ self.inner.set_funding(funding)
}
fn is_abandoned(&self) -> bool {
- CompletePackageInterface::is_abandoned(&self.inner)
+ self.inner.is_abandoned()
}
- fn get_replacement_package(&self) -> Option<&str> {
- CompletePackageInterface::get_replacement_package(&self.inner)
+ fn get_replacement_package(&self) -> Option<String> {
+ self.inner.get_replacement_package()
}
fn set_abandoned(&mut self, abandoned: PhpMixed) {
- CompletePackageInterface::set_abandoned(&mut self.inner, abandoned)
+ self.inner.set_abandoned(abandoned)
}
- fn get_archive_name(&self) -> Option<&str> {
- CompletePackageInterface::get_archive_name(&self.inner)
+ fn get_archive_name(&self) -> Option<String> {
+ self.inner.get_archive_name()
}
fn set_archive_name(&mut self, name: String) {
- CompletePackageInterface::set_archive_name(&mut self.inner, name)
+ self.inner.set_archive_name(name)
}
fn get_archive_excludes(&self) -> Vec<String> {
- CompletePackageInterface::get_archive_excludes(&self.inner)
+ self.inner.get_archive_excludes()
}
fn set_archive_excludes(&mut self, excludes: Vec<String>) {
- CompletePackageInterface::set_archive_excludes(&mut self.inner, excludes)
+ self.inner.set_archive_excludes(excludes)
}
fn as_package_interface(&self) -> &dyn PackageInterface {
@@ -278,19 +278,19 @@ impl PackageInterface for RootPackage {
fn set_installation_source(&mut self, r#type: Option<String>) {
self.inner.set_installation_source(r#type);
}
- fn get_installation_source(&self) -> Option<&str> {
+ fn get_installation_source(&self) -> Option<String> {
self.inner.get_installation_source()
}
- fn get_source_type(&self) -> Option<&str> {
+ fn get_source_type(&self) -> Option<String> {
self.inner.get_source_type()
}
- fn get_source_url(&self) -> Option<&str> {
+ fn get_source_url(&self) -> Option<String> {
self.inner.get_source_url()
}
fn get_source_urls(&self) -> Vec<String> {
self.inner.get_source_urls()
}
- fn get_source_reference(&self) -> Option<&str> {
+ fn get_source_reference(&self) -> Option<String> {
self.inner.get_source_reference()
}
fn get_source_mirrors(&self) -> Option<Vec<Mirror>> {
@@ -299,19 +299,19 @@ impl PackageInterface for RootPackage {
fn set_source_mirrors(&mut self, mirrors: Option<Vec<Mirror>>) {
self.inner.set_source_mirrors(mirrors);
}
- fn get_dist_type(&self) -> Option<&str> {
+ fn get_dist_type(&self) -> Option<String> {
self.inner.get_dist_type()
}
- fn get_dist_url(&self) -> Option<&str> {
+ fn get_dist_url(&self) -> Option<String> {
self.inner.get_dist_url()
}
fn get_dist_urls(&self) -> Vec<String> {
self.inner.get_dist_urls()
}
- fn get_dist_reference(&self) -> Option<&str> {
+ fn get_dist_reference(&self) -> Option<String> {
self.inner.get_dist_reference()
}
- fn get_dist_sha1_checksum(&self) -> Option<&str> {
+ fn get_dist_sha1_checksum(&self) -> Option<String> {
self.inner.get_dist_sha1_checksum()
}
fn get_dist_mirrors(&self) -> Option<Vec<Mirror>> {
@@ -377,7 +377,7 @@ impl PackageInterface for RootPackage {
fn get_unique_name(&self) -> String {
self.inner.get_unique_name()
}
- fn get_notification_url(&self) -> Option<&str> {
+ fn get_notification_url(&self) -> Option<String> {
self.inner.get_notification_url()
}
fn get_pretty_string(&self) -> String {
@@ -407,7 +407,7 @@ impl PackageInterface for RootPackage {
fn set_dist_reference(&mut self, reference: Option<String>) {
self.inner.set_dist_reference(reference);
}
- fn set_source_dist_references(&mut self, reference: &str) {
+ fn set_source_dist_references(&mut self, reference: String) {
self.inner.set_source_dist_references(reference);
}
}