__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 reset(): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'reset', []); } public function addInstaller(InstallerInterface $installer): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'addInstaller', [$installer]); } public function removeInstaller(InstallerInterface $installer): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'removeInstaller', [$installer]); } public function disablePlugins(): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'disablePlugins', []); } public function getInstaller(string $type): InstallerInterface { return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getInstaller', [$type]); } public function isPackageInstalled(InstalledRepositoryInterface $repo, PackageInterface $package): bool { return \ShirabeRpcRuntime::callRust($this->__rhandle, 'isPackageInstalled', [$repo, $package]); } public function ensureBinariesPresence(PackageInterface $package): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'ensureBinariesPresence', [$package]); } public function execute(InstalledRepositoryInterface $repo, array $operations, bool $devMode = true, bool $runScripts = true, bool $downloadOnly = false): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'execute', [$repo, $operations, $devMode, $runScripts, $downloadOnly]); } public function download(PackageInterface $package): ?PromiseInterface { return \ShirabeRpcRuntime::callRust($this->__rhandle, 'download', [$package]); } public function install(InstalledRepositoryInterface $repo, InstallOperation $operation): ?PromiseInterface { return \ShirabeRpcRuntime::callRust($this->__rhandle, 'install', [$repo, $operation]); } public function update(InstalledRepositoryInterface $repo, UpdateOperation $operation): ?PromiseInterface { return \ShirabeRpcRuntime::callRust($this->__rhandle, 'update', [$repo, $operation]); } public function uninstall(InstalledRepositoryInterface $repo, UninstallOperation $operation): ?PromiseInterface { return \ShirabeRpcRuntime::callRust($this->__rhandle, 'uninstall', [$repo, $operation]); } public function markAliasInstalled(InstalledRepositoryInterface $repo, MarkAliasInstalledOperation $operation): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'markAliasInstalled', [$repo, $operation]); } public function markAliasUninstalled(InstalledRepositoryInterface $repo, MarkAliasUninstalledOperation $operation): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'markAliasUninstalled', [$repo, $operation]); } public function getInstallPath(PackageInterface $package): ?string { return \ShirabeRpcRuntime::callRust($this->__rhandle, 'getInstallPath', [$package]); } public function setOutputProgress(bool $outputProgress): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'setOutputProgress', [$outputProgress]); } public function notifyInstalls(IOInterface $io): void { \ShirabeRpcRuntime::callRust($this->__rhandle, 'notifyInstalls', [$io]); } }