use distribution_types::LocalEditable; use pep508_rs::Requirement; use pypi_types::Metadata21; use uv_normalize::PackageName; /// A manifest of requirements, constraints, and preferences. #[derive(Debug)] pub struct Manifest { pub(crate) requirements: Vec, pub(crate) constraints: Vec, pub(crate) overrides: Vec, pub(crate) preferences: Vec, pub(crate) project: Option, pub(crate) editables: Vec<(LocalEditable, Metadata21)>, } impl Manifest { pub fn new( requirements: Vec, constraints: Vec, overrides: Vec, preferences: Vec, project: Option, editables: Vec<(LocalEditable, Metadata21)>, ) -> Self { Self { requirements, constraints, overrides, preferences, project, editables, } } pub fn simple(requirements: Vec) -> Self { Self { requirements, constraints: Vec::new(), overrides: Vec::new(), preferences: Vec::new(), project: None, editables: Vec::new(), } } }