__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 function __clone() { // PHP has already shallow-copied this stub, so both copies would point at one // entity and release it twice. The Rust side clones the entity instead, applying // whatever __clone semantics the real class defines, and this copy rebinds to the // fresh handle. Entities without clone semantics answer with an explicit error. [$this->__rhandle, $this->__epoch] = \ShirabeRpcRuntime::callRust($this->__rhandle, '__shirabeClone', []); \ShirabeRustObjectRegistry::adopt($this->__rhandle, $this); } public function __construct(string $name) { [$this->__rhandle, $this->__epoch] = \ShirabeRpcRuntime::callRust(0, '__shirabeConstruct', [static::class, [$name]]); \ShirabeRustObjectRegistry::adopt($this->__rhandle, $this); } 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 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', []); } }