aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver/policy_interface.rs
blob: 002bfe9bd797372639f1937d8f68cd5fb0cae42a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//! 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!()
    }
}