aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/writable_array_repository.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-14 19:45:41 +0900
committernsfisis <nsfisis@gmail.com>2026-05-14 19:45:41 +0900
commit422a5e6f74eb55bd522772d03a7910591e7ea332 (patch)
treeb9f54067fb75be6754d3b828c9c17fb97efffe2b /crates/shirabe/src/repository/writable_array_repository.rs
parent2ae4bfdd31dc6d2f0046f8c93a74ac6c0a4f59e9 (diff)
downloadphp-shirabe-422a5e6f74eb55bd522772d03a7910591e7ea332.tar.gz
php-shirabe-422a5e6f74eb55bd522772d03a7910591e7ea332.tar.zst
php-shirabe-422a5e6f74eb55bd522772d03a7910591e7ea332.zip
feat(port): port WritableArrayRepository.php
Diffstat (limited to 'crates/shirabe/src/repository/writable_array_repository.rs')
-rw-r--r--crates/shirabe/src/repository/writable_array_repository.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/crates/shirabe/src/repository/writable_array_repository.rs b/crates/shirabe/src/repository/writable_array_repository.rs
index 41ae657..54e4b04 100644
--- a/crates/shirabe/src/repository/writable_array_repository.rs
+++ b/crates/shirabe/src/repository/writable_array_repository.rs
@@ -1 +1,36 @@
//! ref: composer/src/Composer/Repository/WritableArrayRepository.php
+
+use anyhow::Result;
+use crate::installer::installation_manager::InstallationManager;
+use crate::repository::array_repository::ArrayRepository;
+
+#[derive(Debug)]
+pub struct WritableArrayRepository {
+ inner: ArrayRepository,
+ pub(crate) dev_package_names: Vec<String>,
+ dev_mode: Option<bool>,
+}
+
+impl WritableArrayRepository {
+ /// Returns true if dev requirements were installed, false if --no-dev was used, None if yet unknown.
+ pub fn get_dev_mode(&self) -> Option<bool> {
+ self.dev_mode
+ }
+
+ pub fn set_dev_package_names(&mut self, dev_package_names: Vec<String>) {
+ self.dev_package_names = dev_package_names;
+ }
+
+ pub fn get_dev_package_names(&self) -> &Vec<String> {
+ &self.dev_package_names
+ }
+
+ pub fn write(&mut self, dev_mode: bool, _installation_manager: &InstallationManager) -> Result<()> {
+ self.dev_mode = Some(dev_mode);
+ Ok(())
+ }
+
+ pub fn reload(&mut self) {
+ self.dev_mode = None;
+ }
+}