aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package/link.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-06 15:16:07 +0900
committernsfisis <nsfisis@gmail.com>2026-06-06 15:17:00 +0900
commit1e7aabcae1b2139aa20a80fbf303c74388933f55 (patch)
tree07c5f4e7502841fef21909b2aa8269e6e71fb2a3 /crates/shirabe/src/package/link.rs
parentadba8b1969a3f40245324d7feb5905693ca65d5e (diff)
downloadphp-shirabe-1e7aabcae1b2139aa20a80fbf303c74388933f55.tar.gz
php-shirabe-1e7aabcae1b2139aa20a80fbf303c74388933f55.tar.zst
php-shirabe-1e7aabcae1b2139aa20a80fbf303c74388933f55.zip
fix(array-dumper): emit package links and require Link pretty constraint
Resolve the phase-b TODO that left the supported-link-types loop as dead code (links were always an empty Vec), so requires/conflicts/provides/ replaces/require-dev are dumped again via PackageInterface::get_links_for_type, matching the PHP magic-call loop. Every Link in production is constructed with a pretty constraint (all ArrayLoader/AliasPackage/PlatformRepository/InstalledRepository sites pass one), so make Link::pretty_constraint a required String instead of Option<String>. get_pretty_constraint() now returns &str directly rather than anyhow::Result<&str>, dropping the unreachable UnexpectedValueException guard, and all call sites are updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/package/link.rs')
-rw-r--r--crates/shirabe/src/package/link.rs18
1 files changed, 4 insertions, 14 deletions
diff --git a/crates/shirabe/src/package/link.rs b/crates/shirabe/src/package/link.rs
index 13bd66b..ab1e9c6 100644
--- a/crates/shirabe/src/package/link.rs
+++ b/crates/shirabe/src/package/link.rs
@@ -1,6 +1,5 @@
//! ref: composer/src/Composer/Package/Link.php
-use shirabe_php_shim::UnexpectedValueException;
use shirabe_semver::constraint::AnyConstraint;
use crate::package::PackageInterfaceHandle;
@@ -10,7 +9,7 @@ pub struct Link {
pub(crate) target: String,
pub(crate) constraint: AnyConstraint,
pub(crate) description: String,
- pub(crate) pretty_constraint: Option<String>,
+ pub(crate) pretty_constraint: String,
}
impl Clone for Link {
@@ -65,7 +64,7 @@ impl Link {
target: String,
constraint: AnyConstraint,
description: Option<String>,
- pretty_constraint: Option<String>,
+ pretty_constraint: String,
) -> Self {
let description = description.unwrap_or_else(|| Self::TYPE_UNKNOWN.to_string());
let description = if description == Self::TYPE_DEV_REQUIRE {
@@ -98,17 +97,8 @@ impl Link {
&self.constraint
}
- pub fn get_pretty_constraint(&self) -> anyhow::Result<&str> {
- match &self.pretty_constraint {
- None => Err(anyhow::anyhow!(UnexpectedValueException {
- message: format!(
- "Link {} has been misconfigured and had no prettyConstraint given.",
- self.to_string()
- ),
- code: 0,
- })),
- Some(s) => Ok(s.as_str()),
- }
+ pub fn get_pretty_constraint(&self) -> &str {
+ &self.pretty_constraint
}
pub fn to_string(&self) -> String {