uv_resolver/
exclusions.rs1use uv_configuration::Reinstall;
2
3use crate::UpgradePackages;
4use uv_normalize::PackageName;
5
6#[derive(Debug, Default, Clone)]
8pub struct Exclusions {
9 reinstall: Reinstall,
10 upgrade: UpgradePackages,
11}
12
13impl Exclusions {
14 pub fn new(reinstall: Reinstall, upgrade: UpgradePackages) -> Self {
15 Self { reinstall, upgrade }
16 }
17
18 pub fn reinstall(&self, package: &PackageName) -> bool {
19 self.reinstall.contains_package(package)
20 }
21
22 pub fn upgrade(&self, package: &PackageName) -> bool {
23 self.upgrade.contains(package)
24 }
25
26 pub fn contains(&self, package: &PackageName) -> bool {
27 self.reinstall(package) || self.upgrade(package)
28 }
29}