aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/writable_array_repository.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/repository/writable_array_repository.rs')
-rw-r--r--crates/shirabe/src/repository/writable_array_repository.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/crates/shirabe/src/repository/writable_array_repository.rs b/crates/shirabe/src/repository/writable_array_repository.rs
index 793478f..05c6bfa 100644
--- a/crates/shirabe/src/repository/writable_array_repository.rs
+++ b/crates/shirabe/src/repository/writable_array_repository.rs
@@ -2,7 +2,9 @@
use crate::installer::installation_manager::InstallationManager;
use crate::repository::array_repository::ArrayRepository;
+use crate::repository::repository_interface::RepositoryInterface;
use anyhow::Result;
+use shirabe_php_shim::Countable;
#[derive(Debug)]
pub struct WritableArrayRepository {
@@ -12,6 +14,16 @@ pub struct WritableArrayRepository {
}
impl WritableArrayRepository {
+ pub fn new(
+ packages: Vec<Box<dyn crate::package::package_interface::PackageInterface>>,
+ ) -> Result<Self> {
+ Ok(Self {
+ inner: ArrayRepository::new(packages)?,
+ dev_package_names: Vec::new(),
+ dev_mode: None,
+ })
+ }
+
/// 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
@@ -72,4 +84,12 @@ impl WritableArrayRepository {
// TODO(phase-b): delegate to inner ArrayRepository::get_packages
Vec::new()
}
+
+ pub fn get_repo_name(&self) -> String {
+ self.inner.get_repo_name()
+ }
+
+ pub fn count(&self) -> i64 {
+ Countable::count(&self.inner)
+ }
}