From 98af76dbe2815c95d15c20e0f911c4a420b6d848 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 20 Jun 2026 02:45:02 +0900 Subject: feat(package): implement as_package_interface upcast Make the Rust-only as_package_interface a required trait method and return self from each concrete implementation, replacing the todo!() default that PHP needs no equivalent for (implicit subtype coercion). Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/package/root_alias_package.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'crates/shirabe/src/package/root_alias_package.rs') diff --git a/crates/shirabe/src/package/root_alias_package.rs b/crates/shirabe/src/package/root_alias_package.rs index 9f987eb..140c96d 100644 --- a/crates/shirabe/src/package/root_alias_package.rs +++ b/crates/shirabe/src/package/root_alias_package.rs @@ -146,6 +146,10 @@ impl RootPackageInterface for RootAliasPackage { fn set_extra(&mut self, extra: IndexMap) { self.alias_of.set_extra(extra); } + + fn as_package_interface(&self) -> &dyn crate::package::PackageInterface { + self + } } impl CompletePackageInterface for RootAliasPackage { @@ -248,4 +252,8 @@ impl CompletePackageInterface for RootAliasPackage { fn set_archive_excludes(&mut self, excludes: Vec) { self.inner.set_archive_excludes(excludes); } + + fn as_package_interface(&self) -> &dyn crate::package::PackageInterface { + self + } } -- cgit v1.3.1