aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-php-rpc/php/stubs/Composer/Package/BasePackage.php
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-04 05:09:04 +0900
committernsfisis <nsfisis@gmail.com>2026-08-04 05:43:32 +0900
commit80631930a6ca7b64d96a89de61c8b63f302161a8 (patch)
treedc5acf4a8dbe74b576ec7826206defa0e3f8fba1 /crates/shirabe-php-rpc/php/stubs/Composer/Package/BasePackage.php
parent850b67c048bbf80d9739520d950f4dd1ed4190a5 (diff)
downloadphp-shirabe-80631930a6ca7b64d96a89de61c8b63f302161a8.tar.gz
php-shirabe-80631930a6ca7b64d96a89de61c8b63f302161a8.tar.zst
php-shirabe-80631930a6ca7b64d96a89de61c8b63f302161a8.zip
feat(plugin): generate proxy stubs for the package and repository graph
Emit the eleven stubs a subscriber plugin's object-graph calls reach (BasePackage through RootPackage, the installed-repository hierarchy, RepositoryManager, InstallationManager). The generator learns the member kinds these classes need: builtin interfaces contribute no closure entries, public static properties are materialized, public instance properties forward through __get/__set, __toString forwards like a plain method, __clone throws (proxy clone semantics are still an open design question), and a subclass stub may add interfaces to its inherited surface. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-php-rpc/php/stubs/Composer/Package/BasePackage.php')
-rw-r--r--crates/shirabe-php-rpc/php/stubs/Composer/Package/BasePackage.php388
1 files changed, 388 insertions, 0 deletions
diff --git a/crates/shirabe-php-rpc/php/stubs/Composer/Package/BasePackage.php b/crates/shirabe-php-rpc/php/stubs/Composer/Package/BasePackage.php
new file mode 100644
index 00000000..e55c3fb5
--- /dev/null
+++ b/crates/shirabe-php-rpc/php/stubs/Composer/Package/BasePackage.php
@@ -0,0 +1,388 @@
+<?php
+
+// Generated by scripts/plugin-stub-generator; do not edit by hand.
+// Proxy stub for Composer\Package\BasePackage: the public surface forwards to the Rust-side entity over RPC.
+
+namespace Composer\Package;
+
+use Composer\Repository\RepositoryInterface;
+
+abstract class BasePackage implements PackageInterface, \ShirabeRustStub
+{
+ /** @var int */
+ protected $__rhandle;
+ /** @var int */
+ protected $__epoch;
+
+ public function __construct(int $rhandle = 0, int $epoch = 0)
+ {
+ if (func_num_args() < 2) {
+ // Constructing the class from plugin code (a common idiom for e.g. `new BufferIO()`)
+ // is an open question of the plugin design; only proxy instantiation passes a
+ // Rust handle. Fail with a diagnosable message instead of an ArgumentCountError.
+ throw new \RuntimeException(
+ 'Shirabe does not support constructing ' . static::class . ' inside the plugin process yet'
+ );
+ }
+ $this->__rhandle = $rhandle;
+ $this->__epoch = $epoch;
+ }
+
+ public function __destruct()
+ {
+ \ShirabeRustObjectRegistry::release($this->__rhandle);
+ }
+
+ public function __shirabeRustHandleDescriptor(): array
+ {
+ return [
+ '__rhandle' => $this->__rhandle,
+ '__class' => static::class,
+ '__epoch' => $this->__epoch,
+ ];
+ }
+
+ public const STABILITY_STABLE = 0;
+ public const STABILITY_RC = 5;
+ public const STABILITY_BETA = 10;
+ public const STABILITY_ALPHA = 15;
+ public const STABILITY_DEV = 20;
+ public const STABILITIES = [
+ 'stable' => self::STABILITY_STABLE,
+ 'RC' => self::STABILITY_RC,
+ 'beta' => self::STABILITY_BETA,
+ 'alpha' => self::STABILITY_ALPHA,
+ 'dev' => self::STABILITY_DEV,
+ ];
+
+ public static $supportedLinkTypes = [
+ 'require' => ['description' => 'requires', 'method' => Link::TYPE_REQUIRE],
+ 'conflict' => ['description' => 'conflicts', 'method' => Link::TYPE_CONFLICT],
+ 'provide' => ['description' => 'provides', 'method' => Link::TYPE_PROVIDE],
+ 'replace' => ['description' => 'replaces', 'method' => Link::TYPE_REPLACE],
+ 'require-dev' => ['description' => 'requires (for development)', 'method' => Link::TYPE_DEV_REQUIRE],
+ ];
+ public static $stabilities = self::STABILITIES;
+
+ /** The real class declares public properties; every access forwards to the entity. */
+ public function __get($name)
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, '__get', [$name]);
+ }
+
+ public function __set($name, $value): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, '__set', [$name, $value]);
+ }
+
+ public function __clone()
+ {
+ // Cloning a proxy is an open design question; fail instead of silently sharing
+ // the Rust-side entity between two stub instances.
+ throw new \RuntimeException('Shirabe does not support cloning ' . static::class . ' inside the plugin process yet');
+ }
+
+ public static function packageNameToRegexp(string $allowPattern, string $wrap = '{^%s$}i'): string
+ {
+ $cleanedAllowPattern = str_replace('\\*', '.*', preg_quote($allowPattern));
+
+ return sprintf($wrap, $cleanedAllowPattern);
+ }
+
+ public static function packageNamesToRegexp(array $packageNames, string $wrap = '{^(?:%s)$}iD'): string
+ {
+ $packageNames = array_map(
+ static function ($packageName): string {
+ return BasePackage::packageNameToRegexp($packageName, '%s');
+ },
+ $packageNames
+ );
+
+ return sprintf($wrap, implode('|', $packageNames));
+ }
+
+ public function getName(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getName', []);
+ }
+
+ public function getPrettyName(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getPrettyName', []);
+ }
+
+ public function getNames($provides = true): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getNames', [$provides]);
+ }
+
+ public function setId(int $id): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setId', [$id]);
+ }
+
+ public function getId(): int
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getId', []);
+ }
+
+ public function isDev(): bool
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'isDev', []);
+ }
+
+ public function getType(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getType', []);
+ }
+
+ public function getTargetDir(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getTargetDir', []);
+ }
+
+ public function getExtra(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getExtra', []);
+ }
+
+ public function setInstallationSource(?string $type): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setInstallationSource', [$type]);
+ }
+
+ public function getInstallationSource(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getInstallationSource', []);
+ }
+
+ public function getSourceType(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getSourceType', []);
+ }
+
+ public function getSourceUrl(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getSourceUrl', []);
+ }
+
+ public function getSourceUrls(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getSourceUrls', []);
+ }
+
+ public function getSourceReference(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getSourceReference', []);
+ }
+
+ public function getSourceMirrors(): ?array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getSourceMirrors', []);
+ }
+
+ public function setSourceMirrors(?array $mirrors): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setSourceMirrors', [$mirrors]);
+ }
+
+ public function getDistType(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDistType', []);
+ }
+
+ public function getDistUrl(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDistUrl', []);
+ }
+
+ public function getDistUrls(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDistUrls', []);
+ }
+
+ public function getDistReference(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDistReference', []);
+ }
+
+ public function getDistSha1Checksum(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDistSha1Checksum', []);
+ }
+
+ public function getDistMirrors(): ?array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDistMirrors', []);
+ }
+
+ public function setDistMirrors(?array $mirrors): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setDistMirrors', [$mirrors]);
+ }
+
+ public function getVersion(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getVersion', []);
+ }
+
+ public function getPrettyVersion(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getPrettyVersion', []);
+ }
+
+ public function getFullPrettyVersion(bool $truncate = true, int $displayMode = PackageInterface::DISPLAY_SOURCE_REF_IF_DEV): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getFullPrettyVersion', [$truncate, $displayMode]);
+ }
+
+ public function getReleaseDate(): ?\DateTimeInterface
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getReleaseDate', []);
+ }
+
+ public function getStability(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getStability', []);
+ }
+
+ public function getRequires(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getRequires', []);
+ }
+
+ public function getConflicts(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getConflicts', []);
+ }
+
+ public function getProvides(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getProvides', []);
+ }
+
+ public function getReplaces(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getReplaces', []);
+ }
+
+ public function getDevRequires(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDevRequires', []);
+ }
+
+ public function getSuggests(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getSuggests', []);
+ }
+
+ public function getAutoload(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getAutoload', []);
+ }
+
+ public function getDevAutoload(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getDevAutoload', []);
+ }
+
+ public function getIncludePaths(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getIncludePaths', []);
+ }
+
+ public function getPhpExt(): ?array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getPhpExt', []);
+ }
+
+ public function setRepository(RepositoryInterface $repository): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setRepository', [$repository]);
+ }
+
+ public function getRepository(): ?RepositoryInterface
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getRepository', []);
+ }
+
+ public function getBinaries(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getBinaries', []);
+ }
+
+ public function getUniqueName(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getUniqueName', []);
+ }
+
+ public function getNotificationUrl(): ?string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getNotificationUrl', []);
+ }
+
+ public function __toString(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, '__toString', []);
+ }
+
+ public function getPrettyString(): string
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getPrettyString', []);
+ }
+
+ public function isDefaultBranch(): bool
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'isDefaultBranch', []);
+ }
+
+ public function getTransportOptions(): array
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getTransportOptions', []);
+ }
+
+ public function setTransportOptions(array $options): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setTransportOptions', [$options]);
+ }
+
+ public function setSourceReference(?string $reference): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setSourceReference', [$reference]);
+ }
+
+ public function setDistUrl(?string $url): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setDistUrl', [$url]);
+ }
+
+ public function setDistType(?string $type): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setDistType', [$type]);
+ }
+
+ public function setDistReference(?string $reference): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setDistReference', [$reference]);
+ }
+
+ public function setSourceDistReferences(string $reference): void
+ {
+ \ShirabeRpcRuntime::callRust($this->__rhandle, 'setSourceDistReferences', [$reference]);
+ }
+
+ public function isPlatform(): bool
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'isPlatform', []);
+ }
+
+ public function equals(PackageInterface $package): bool
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'equals', [$package]);
+ }
+
+ public function getStabilityPriority(): int
+ {
+ return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getStabilityPriority', []);
+ }
+}