Struct cargo::sources::registry::RegistrySource
source · pub struct RegistrySource<'cfg> {
source_id: SourceId,
src_path: Filesystem,
config: &'cfg Config,
ops: Box<dyn RegistryData + 'cfg>,
index: RegistryIndex<'cfg>,
yanked_whitelist: HashSet<PackageId>,
}
Expand description
A “source” for a local (see local::LocalRegistry
) or remote (see
remote::RemoteRegistry
) registry.
This contains common functionality that is shared between the two registry
kinds, with the registry-specific logic implemented as part of the
RegistryData
trait referenced via the ops
field.
Fields§
§source_id: SourceId
§src_path: Filesystem
The path where crate files are extracted ($CARGO_HOME/registry/src/$REG-HASH
).
config: &'cfg Config
Local reference to Config
for convenience.
ops: Box<dyn RegistryData + 'cfg>
Abstraction for interfacing to the different registry kinds.
index: RegistryIndex<'cfg>
Interface for managing the on-disk index.
yanked_whitelist: HashSet<PackageId>
A set of packages that should be allowed to be used, even if they are yanked.
This is populated from the entries in Cargo.lock
to ensure that
cargo update -p somepkg
won’t unlock yanked entries in Cargo.lock
.
Otherwise, the resolver would think that those entries no longer
exist, and it would trigger updates to unrelated packages.
Implementations§
source§impl<'cfg> RegistrySource<'cfg>
impl<'cfg> RegistrySource<'cfg>
pub fn remote( source_id: SourceId, yanked_whitelist: &HashSet<PackageId>, config: &'cfg Config ) -> CargoResult<RegistrySource<'cfg>>
pub fn local( source_id: SourceId, path: &Path, yanked_whitelist: &HashSet<PackageId>, config: &'cfg Config ) -> RegistrySource<'cfg>
fn new( source_id: SourceId, config: &'cfg Config, name: &str, ops: Box<dyn RegistryData + 'cfg>, yanked_whitelist: &HashSet<PackageId> ) -> RegistrySource<'cfg>
sourcepub fn config(&mut self) -> Poll<CargoResult<Option<RegistryConfig>>>
pub fn config(&mut self) -> Poll<CargoResult<Option<RegistryConfig>>>
Decode the configuration stored within the registry.
This requires that the index has been at least checked out.
sourcefn unpack_package(&self, pkg: PackageId, tarball: &File) -> CargoResult<PathBuf>
fn unpack_package(&self, pkg: PackageId, tarball: &File) -> CargoResult<PathBuf>
Unpacks a downloaded package into a location where it’s ready to be compiled.
No action is taken if the source looks like it’s already unpacked.
fn get_pkg(&mut self, package: PackageId, path: &File) -> CargoResult<Package>
Trait Implementations§
source§impl<'cfg> Source for RegistrySource<'cfg>
impl<'cfg> Source for RegistrySource<'cfg>
source§fn query(
&mut self,
dep: &Dependency,
kind: QueryKind,
f: &mut dyn FnMut(Summary)
) -> Poll<CargoResult<()>>
fn query( &mut self, dep: &Dependency, kind: QueryKind, f: &mut dyn FnMut(Summary) ) -> Poll<CargoResult<()>>
source§fn supports_checksums(&self) -> bool
fn supports_checksums(&self) -> bool
source§fn requires_precise(&self) -> bool
fn requires_precise(&self) -> bool
precise
field in the source id listed.source§fn invalidate_cache(&mut self)
fn invalidate_cache(&mut self)
source§fn download(&mut self, package: PackageId) -> CargoResult<MaybePackage>
fn download(&mut self, package: PackageId) -> CargoResult<MaybePackage>
fn finish_download( &mut self, package: PackageId, data: Vec<u8> ) -> CargoResult<Package>
source§fn fingerprint(&self, pkg: &Package) -> CargoResult<String>
fn fingerprint(&self, pkg: &Package) -> CargoResult<String>
source§fn describe(&self) -> String
fn describe(&self) -> String
source§fn add_to_yanked_whitelist(&mut self, pkgs: &[PackageId])
fn add_to_yanked_whitelist(&mut self, pkgs: &[PackageId])
source§fn is_yanked(&mut self, pkg: PackageId) -> Poll<CargoResult<bool>>
fn is_yanked(&mut self, pkg: PackageId) -> Poll<CargoResult<bool>>
source§fn block_until_ready(&mut self) -> CargoResult<()>
fn block_until_ready(&mut self) -> CargoResult<()>
Poll::Ready
. Read moresource§fn replaced_source_id(&self) -> SourceId
fn replaced_source_id(&self) -> SourceId
SourceId
corresponding to this source.fn query_vec( &mut self, dep: &Dependency, kind: QueryKind ) -> Poll<CargoResult<Vec<Summary>>>
fn download_now( self: Box<Self>, package: PackageId, config: &Config ) -> CargoResult<Package>where Self: Sized,
source§fn verify(&self, _pkg: PackageId) -> CargoResult<()>
fn verify(&self, _pkg: PackageId) -> CargoResult<()>
source§fn is_replaced(&self) -> bool
fn is_replaced(&self) -> bool
Auto Trait Implementations§
impl<'cfg> !RefUnwindSafe for RegistrySource<'cfg>
impl<'cfg> !Send for RegistrySource<'cfg>
impl<'cfg> !Sync for RegistrySource<'cfg>
impl<'cfg> Unpin for RegistrySource<'cfg>
impl<'cfg> !UnwindSafe for RegistrySource<'cfg>
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 192 bytes