Skip to main content

uv_resolver/
lib.rs

1pub use error::{ErrorTree, NoSolutionError, NoSolutionHeader, ResolveError};
2pub use exclusions::Exclusions;
3pub use flat_index::FlatIndex;
4pub use manifest::Manifest;
5pub use preferences::{Preference, PreferenceError, Preferences};
6pub use pubgrub::PubGrubHint;
7pub use python_requirement::PythonRequirement;
8pub use resolution::{ConflictingDistributionError, DisplayResolutionGraph, ResolverOutput};
9pub use resolver::{
10    DefaultResolverProvider, InMemoryIndex, MetadataResponse, PackageVersionsResult,
11    Reporter as ResolverReporter, Resolver, ResolverEnvironment, ResolverProvider,
12    VersionsResponse, WheelMetadataResult,
13};
14pub use universal_marker::UniversalMarker;
15pub use upgrade::UpgradePackages;
16pub use uv_configuration::{
17    AnnotationStyle, DependencyMode, ExcludeNewer, ExcludeNewerChange, ExcludeNewerOverrideChange,
18    ExcludeNewerPackage, ExcludeNewerPackageChange, ExcludeNewerPackageEntry,
19    ExcludeNewerValueChange, ExcludeNewerValueWithSpanRef, ForkStrategy, Prerelease,
20    PrereleaseMode, PrereleasePackage, PrereleasePackageEntry, ResolutionMode,
21    serialize_exclude_newer_package_with_spans,
22};
23pub use uv_distribution_types::{ExcludeNewerOverride, ExcludeNewerSpan, ExcludeNewerValue};
24pub use uv_resolver_types::{Flexibility, Options, OptionsBuilder};
25pub use version_map::VersionMap;
26pub use yanks::AllowedYanks;
27
28use uv_resolver_types::{graph_ops, universal_marker};
29
30/// A custom `HashSet` using `hashbrown`.
31///
32/// We use `hashbrown` instead of `std` to get access to its `Equivalent`
33/// trait. This lets use store things like `ConflictItem`, but refer to it via
34/// `ConflictItemRef`. i.e., We can avoid allocs on lookups.
35type FxHashbrownSet<T> = hashbrown::HashSet<T, rustc_hash::FxBuildHasher>;
36
37type FxHashbrownMap<K, V> = hashbrown::HashMap<K, V, rustc_hash::FxBuildHasher>;
38
39mod candidate_selector;
40mod dependency_provider;
41mod error;
42mod exclusions;
43mod flat_index;
44mod fork_indexes;
45mod fork_urls;
46mod manifest;
47mod marker;
48mod pins;
49mod preferences;
50mod prerelease;
51pub mod pubgrub;
52mod python_requirement;
53mod redirect;
54mod resolution;
55mod resolution_mode;
56mod resolver;
57mod upgrade;
58mod version_map;
59mod yanks;