uv_resolver/
fork_strategy.rs

1#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, serde::Deserialize, serde::Serialize)]
2#[serde(deny_unknown_fields, rename_all = "kebab-case")]
3#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
4#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
5pub enum ForkStrategy {
6    /// Optimize for selecting the fewest number of versions for each package. Older versions may
7    /// be preferred if they are compatible with a wider range of supported Python versions or
8    /// platforms.
9    Fewest,
10    /// Optimize for selecting latest supported version of each package, for each supported Python
11    /// version.
12    #[default]
13    RequiresPython,
14}
15
16impl std::fmt::Display for ForkStrategy {
17    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18        match self {
19            Self::Fewest => write!(f, "fewest"),
20            Self::RequiresPython => write!(f, "requires-python"),
21        }
22    }
23}