aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-14 19:46:17 +0900
committernsfisis <nsfisis@gmail.com>2026-05-14 19:46:17 +0900
commit3f3ac8d4ba5efc673efe5f7f686acdfa5970ba4a (patch)
tree0c3ded7c28689469d0b0f4a0b3709dc96727e6d5 /crates
parent422a5e6f74eb55bd522772d03a7910591e7ea332 (diff)
downloadphp-shirabe-3f3ac8d4ba5efc673efe5f7f686acdfa5970ba4a.tar.gz
php-shirabe-3f3ac8d4ba5efc673efe5f7f686acdfa5970ba4a.tar.zst
php-shirabe-3f3ac8d4ba5efc673efe5f7f686acdfa5970ba4a.zip
feat(port): port WritableRepositoryInterface.php
Diffstat (limited to 'crates')
-rw-r--r--crates/shirabe/src/repository/writable_repository_interface.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/crates/shirabe/src/repository/writable_repository_interface.rs b/crates/shirabe/src/repository/writable_repository_interface.rs
index 4f61900..3cb8b00 100644
--- a/crates/shirabe/src/repository/writable_repository_interface.rs
+++ b/crates/shirabe/src/repository/writable_repository_interface.rs
@@ -1 +1,22 @@
//! ref: composer/src/Composer/Repository/WritableRepositoryInterface.php
+
+use anyhow::Result;
+use crate::installer::installation_manager::InstallationManager;
+use crate::package::package_interface::PackageInterface;
+use crate::repository::repository_interface::RepositoryInterface;
+
+pub trait WritableRepositoryInterface: RepositoryInterface {
+ fn write(&mut self, dev_mode: bool, installation_manager: &InstallationManager) -> Result<()>;
+
+ fn add_package(&mut self, package: Box<dyn PackageInterface>) -> Result<()>;
+
+ fn remove_package(&mut self, package: &dyn PackageInterface) -> Result<()>;
+
+ fn get_canonical_packages(&self) -> Vec<Box<dyn PackageInterface>>;
+
+ fn reload(&mut self);
+
+ fn set_dev_package_names(&mut self, dev_package_names: Vec<String>);
+
+ fn get_dev_package_names(&self) -> &Vec<String>;
+}