aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver/policy_interface.rs
blob: 0b37dc5f33ab556debb26aa2998e8bcda9e4c5c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//! ref: composer/src/Composer/DependencyResolver/PolicyInterface.php

use crate::dependency_resolver::Pool;
use crate::package::BasePackageHandle;

pub trait PolicyInterface: std::fmt::Debug {
    fn version_compare(&self, a: BasePackageHandle, b: BasePackageHandle, operator: &str) -> bool;

    fn select_preferred_packages(
        &self,
        pool: &Pool,
        literals: Vec<i64>,
        required_package: Option<String>,
    ) -> Vec<i64>;

    fn clone_box(&self) -> Box<dyn PolicyInterface> {
        todo!()
    }
}