Skip to main content

Module registry

Module registry 

Source
Expand description

Types that hold source information for a group of packages.

The primary type you’re looking for is PackageRegistry. It is an abstraction over multiple Sources. PackageRegistry also implements the Registry trait, allowing a dependency resolver to query necessary package metadata (i.e., Summary) from it.

Not to be confused with crate::sources::registry and crate::ops::registry. The former is just one kind of source, while the latter involves operations on the registry Web API.

Re-exportsΒ§

use cargo_util::collections::HashMap; πŸ”’
use cargo_util::collections::HashSet; πŸ”’
use std::cell::RefCell; πŸ”’
use crate::sources::IndexSummary; πŸ”’
use crate::sources::config::SourceConfigMap; πŸ”’
use crate::sources::source::QueryKind; πŸ”’
use crate::sources::source::Source; πŸ”’
use crate::sources::source::SourceMap; πŸ”’
use crate::util::VersionReqMatchMode; πŸ”’
use crate::util::errors::CargoResult; πŸ”’
use crate::util::interning::InternedString; πŸ”’
use crate::util::CanonicalUrl; πŸ”’
use crate::util::GlobalContext; πŸ”’
use crate::workspace::Dependency; πŸ”’
use crate::workspace::PackageId; πŸ”’
use crate::workspace::PackageSet; πŸ”’
use crate::workspace::Patch; πŸ”’
use crate::workspace::SourceId; πŸ”’
use crate::workspace::Summary; πŸ”’
use anyhow::Context as _; πŸ”’
use cargo_util_terminal::report::Level; πŸ”’
use futures::stream::FuturesUnordered; πŸ”’
use itertools::Itertools; πŸ”’
use tracing::debug; πŸ”’
use tracing::trace; πŸ”’
use url::Url; πŸ”’

StructsΒ§

LockedPatchDependency
Argument to PackageRegistry::patch which is information about a [patch] directive that we found in a lockfile, if present.
PackageRegistry
This structure represents a registry of known packages. It internally contains a number of Source instances which are used to load a Package from.

EnumsΒ§

Kind πŸ”’
Kinds of sources a PackageRegistry has loaded.

TraitsΒ§

Registry
An abstraction provides a set of methods for querying source information about a group of packages, without leaking too much implementation details of the actual registry.

FunctionsΒ§

lock πŸ”’
See PackageRegistry::lock.
summary_for_patch πŸ”’
A helper for selecting the summary, or generating a helpful error message.

Type AliasesΒ§

LockedMap πŸ”’
A map of all β€œlocked packages” which is filled in when parsing a lock file and is used to guide dependency resolution by altering summaries as they’re queried from this source.
PatchDependency
This tuple is an argument to PackageRegistry::patch.