Skip to main content

uv_resolver/
lib.rs

1pub use dependency_mode::DependencyMode;
2pub use error::{ErrorTree, NoSolutionError, NoSolutionHeader, ResolveError, SentinelRange};
3pub use exclude_newer::{
4    ExcludeNewer, ExcludeNewerChange, ExcludeNewerOverrideChange, ExcludeNewerPackage,
5    ExcludeNewerPackageChange, ExcludeNewerPackageEntry, ExcludeNewerValueChange,
6    ExcludeNewerValueWithSpanRef, serialize_exclude_newer_package_with_spans,
7};
8pub use exclusions::Exclusions;
9pub use flat_index::{FlatDistributions, FlatIndex};
10pub use fork_strategy::ForkStrategy;
11pub use lock::{
12    DependencySelection, Installable, Lock, LockError, LockVersion, Metadata, Package, PackageMap,
13    PylockToml, PylockTomlError, PylockTomlErrorKind, RequirementsTxtExport, ResolverManifest,
14    SatisfiesResult, TreeDisplay, VERSION, cyclonedx_json,
15};
16pub use manifest::Manifest;
17pub use options::{Flexibility, Options, OptionsBuilder};
18pub use preferences::{Preference, PreferenceError, Preferences};
19pub use prerelease::PrereleaseMode;
20pub use pubgrub::PubGrubHint;
21pub use python_requirement::PythonRequirement;
22pub use resolution::{
23    AnnotationStyle, ConflictingDistributionError, DisplayResolutionGraph, ResolverOutput,
24};
25pub use resolution_mode::ResolutionMode;
26pub use resolver::{
27    DefaultResolverProvider, InMemoryIndex, MetadataResponse, PackageVersionsResult,
28    Reporter as ResolverReporter, Resolver, ResolverEnvironment, ResolverProvider,
29    VersionsResponse, WheelMetadataResult,
30};
31pub(crate) use universal_marker::ConflictMarker;
32pub use universal_marker::UniversalMarker;
33pub use upgrade::UpgradePackages;
34pub use uv_distribution_types::{ExcludeNewerOverride, ExcludeNewerSpan, ExcludeNewerValue};
35pub use version_map::VersionMap;
36pub use yanks::AllowedYanks;
37
38/// A custom `HashSet` using `hashbrown`.
39///
40/// We use `hashbrown` instead of `std` to get access to its `Equivalent`
41/// trait. This lets use store things like `ConflictItem`, but refer to it via
42/// `ConflictItemRef`. i.e., We can avoid allocs on lookups.
43type FxHashbrownSet<T> = hashbrown::HashSet<T, rustc_hash::FxBuildHasher>;
44
45type FxHashbrownMap<K, V> = hashbrown::HashMap<K, V, rustc_hash::FxBuildHasher>;
46
47mod candidate_selector;
48mod dependency_mode;
49mod dependency_provider;
50mod error;
51mod exclude_newer;
52mod exclusions;
53mod flat_index;
54mod fork_indexes;
55mod fork_strategy;
56mod fork_urls;
57mod graph_ops;
58mod lock;
59mod manifest;
60mod marker;
61mod options;
62mod pins;
63mod preferences;
64mod prerelease;
65pub mod pubgrub;
66mod python_requirement;
67mod redirect;
68mod resolution;
69mod resolution_mode;
70mod resolver;
71mod universal_marker;
72mod upgrade;
73mod version_map;
74mod yanks;