aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/writable_repository_interface.rs
blob: 709421188578cf0b2a30b9867723c713a017e792 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//! ref: composer/src/Composer/Repository/WritableRepositoryInterface.php

use crate::installer::InstallationManager;
use crate::package::PackageInterface;
use crate::repository::RepositoryInterface;
use anyhow::Result;

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>;
}