uv_configuration/
excludes.rs

1use rustc_hash::FxHashSet;
2
3use uv_normalize::PackageName;
4
5/// A set of packages to exclude from resolution.
6#[derive(Debug, Default, Clone)]
7pub struct Excludes(FxHashSet<PackageName>);
8
9impl Excludes {
10    /// Return an iterator over all package names in the exclusion set.
11    pub fn iter(&self) -> impl Iterator<Item = &PackageName> {
12        self.0.iter()
13    }
14
15    /// Check if a package is excluded.
16    pub fn contains(&self, name: &PackageName) -> bool {
17        self.0.contains(name)
18    }
19}
20
21impl FromIterator<PackageName> for Excludes {
22    fn from_iter<I: IntoIterator<Item = PackageName>>(iter: I) -> Self {
23        Self(iter.into_iter().collect())
24    }
25}