aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/installed_versions.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-04 21:47:27 +0900
committernsfisis <nsfisis@gmail.com>2026-06-04 21:47:27 +0900
commit813a1b30aab5034512fd4ae4bee0acb1ece414dd (patch)
treeefdf352a705127ed4b1f2a80394cfb5ef7cda3c9 /crates/shirabe/src/installed_versions.rs
parent06e8e14520a4a38fed500581d2b75a42418b22c4 (diff)
downloadphp-shirabe-813a1b30aab5034512fd4ae4bee0acb1ece414dd.tar.gz
php-shirabe-813a1b30aab5034512fd4ae4bee0acb1ece414dd.tar.zst
php-shirabe-813a1b30aab5034512fd4ae4bee0acb1ece414dd.zip
feat(loader): wire ArrayLoader::load end-to-end (create_object/configure_object/dispatch)
Make ArrayLoader::load build and return a fully configured package for both the CompletePackage and RootPackage class strings. - Introduce a private CompleteOrRootPackage enum to model PHP's createObject(): CompletePackage return (RootPackage extends CompletePackage), with accessors for the inner Package, the CompletePackageInterface view, and conversion into a PackageInterfaceHandle. - create_object: instantiate CompletePackage/RootPackage by class string. - load / configure_cached_links: implement the dynamic setter dispatch ($package->{'set'.ucfirst($method)}($links)) via apply_link_setter. - configure_object: wire all ~21 setters (Package inherent + CompletePackageInterface), source/dist with Mirror conversion, suggest self.version replacement, release date, and the branch-alias return (RootAliasPackage/CompleteAliasPackage). The PHP `instanceof CompletePackage` guard in configureObject is dropped: it is unreachable since createObject is private and returns `: CompletePackage`, an invariant now enforced at compile time by the enum. DateTime parsing for `time` keeps its existing approximate scaffold (noted with a TODO). RootPackage.inner is made pub(crate) (matching CompletePackage.inner) so the loader can reach the core Package. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/installed_versions.rs')
0 files changed, 0 insertions, 0 deletions