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

use crate::dependency_resolver::pool::Pool;
use crate::package::package_interface::PackageInterface;

pub trait PolicyInterface {
    fn version_compare(
        &self,
        a: &dyn PackageInterface,
        b: &dyn PackageInterface,
        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!()
    }
}