diff options
Diffstat (limited to 'crates/shirabe/src/repository')
| -rw-r--r-- | crates/shirabe/src/repository/handle.rs | 4 | ||||
| -rw-r--r-- | crates/shirabe/src/repository/lock_array_repository.rs | 12 | ||||
| -rw-r--r-- | crates/shirabe/src/repository/repository_interface.rs | 4 |
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!() - } } |
