aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/repository')
-rw-r--r--crates/shirabe/src/repository/handle.rs4
-rw-r--r--crates/shirabe/src/repository/lock_array_repository.rs12
-rw-r--r--crates/shirabe/src/repository/repository_interface.rs4
3 files changed, 13 insertions, 7 deletions
diff --git a/crates/shirabe/src/repository/handle.rs b/crates/shirabe/src/repository/handle.rs
index 38a4f28..73d4493 100644
--- a/crates/shirabe/src/repository/handle.rs
+++ b/crates/shirabe/src/repository/handle.rs
@@ -202,6 +202,10 @@ impl LockArrayRepositoryHandle {
self.0.borrow_mut()
}
+ pub fn add_package(&self, package: PackageInterfaceHandle) -> anyhow::Result<()> {
+ self.0.borrow().add_package(package)
+ }
+
pub fn ptr_eq(&self, other: &Self) -> bool {
Rc::ptr_eq(&self.0, &other.0)
}
diff --git a/crates/shirabe/src/repository/lock_array_repository.rs b/crates/shirabe/src/repository/lock_array_repository.rs
index f9b64a7..08e888a 100644
--- a/crates/shirabe/src/repository/lock_array_repository.rs
+++ b/crates/shirabe/src/repository/lock_array_repository.rs
@@ -19,13 +19,19 @@ pub struct LockArrayRepository {
impl CanonicalPackagesTrait for LockArrayRepository {
fn get_packages(&self) -> Vec<PackageInterfaceHandle> {
- todo!()
+ RepositoryInterface::get_packages(&self.inner)
}
}
impl LockArrayRepository {
- pub fn clone_box(&self) -> Box<dyn RepositoryInterface> {
- todo!()
+ pub fn new(packages: Vec<PackageInterfaceHandle>) -> anyhow::Result<Self> {
+ Ok(Self {
+ inner: ArrayRepository::new(packages)?,
+ })
+ }
+
+ pub fn add_package(&self, package: PackageInterfaceHandle) -> anyhow::Result<()> {
+ self.inner.add_package(package)
}
}
diff --git a/crates/shirabe/src/repository/repository_interface.rs b/crates/shirabe/src/repository/repository_interface.rs
index 21914f6..e75f54e 100644
--- a/crates/shirabe/src/repository/repository_interface.rs
+++ b/crates/shirabe/src/repository/repository_interface.rs
@@ -109,8 +109,4 @@ pub trait RepositoryInterface: Countable + std::fmt::Debug {
fn set_self_handle(&self, weak: crate::repository::RepositoryInterfaceWeakHandle) {
let _ = weak;
}
-
- fn clone_box(&self) -> Box<dyn RepositoryInterface> {
- todo!()
- }
}