pub struct LocalRegistry<'gctx> {
index_path: Filesystem,
root: Filesystem,
src_path: Filesystem,
gctx: &'gctx GlobalContext,
updated: bool,
quiet: bool,
}Expand description
A local registry is a registry that lives on the filesystem as a set of
.crate files with an index directory in the same format as a remote
registry.
This type is primarily accessed through the RegistryData trait.
When a local registry is requested for a package, it simply looks into what
its index has under the index directory. When LocalRegistry::download
is called, a local registry verifies the checksum of the requested .crate
tarball and then unpacks it to $CARGO_HOME/.registry/src.
Note that there is a third-party subcommand
cargo-local-registry, which happened to be developed by a former Cargo team member when local registry was introduced. The tool is to ease the burden of maintaining local registries. However, in general the Cargo team avoids recommending any specific third-party crate. Just FYI.
§Filesystem hierarchy
Here is an example layout of a local registry on a local filesystem:
[registry root]/
├── index/ # registry index
│ ├── an/
│ │ └── yh/
│ │ └── anyhow
│ ├── ru/
│ │ └── st/
│ │ ├── rustls
│ │ └── rustls-ffi
│ └── se/
│ └── mv/
│ └── semver
├── anyhow-1.0.71.crate # pre-downloaded crate tarballs
├── rustls-0.20.8.crate
├── rustls-ffi-0.8.2.crate
└── semver-1.0.17.crateFor general concepts of registries, see the module-level documentation.
Fields§
§index_path: FilesystemPath to the registry index.
root: FilesystemRoot path of this local registry.
src_path: FilesystemPath where this local registry extract .crate tarballs to.
gctx: &'gctx GlobalContext§updated: boolWhether this source has updated all package information it may contain.
quiet: boolDisables status messages.
Implementations§
Source§impl<'gctx> LocalRegistry<'gctx>
impl<'gctx> LocalRegistry<'gctx>
Sourcepub fn new(
root: &Path,
gctx: &'gctx GlobalContext,
name: &str,
) -> LocalRegistry<'gctx>
pub fn new( root: &Path, gctx: &'gctx GlobalContext, name: &str, ) -> LocalRegistry<'gctx>
Creates a local registry at root.
name— Name of a path segment where.cratetarballs are stored. Expect to be unique.
Trait Implementations§
Source§impl<'gctx> RegistryData for LocalRegistry<'gctx>
impl<'gctx> RegistryData for LocalRegistry<'gctx>
Source§fn index_path(&self) -> &Filesystem
fn index_path(&self) -> &Filesystem
Source§fn assert_index_locked<'a>(&self, path: &'a Filesystem) -> &'a Path
fn assert_index_locked<'a>(&self, path: &'a Filesystem) -> &'a Path
Source§fn load(
&mut self,
root: &Path,
path: &Path,
_index_version: Option<&str>,
) -> Poll<CargoResult<LoadResponse>>
fn load( &mut self, root: &Path, path: &Path, _index_version: Option<&str>, ) -> Poll<CargoResult<LoadResponse>>
Source§fn config(&mut self) -> Poll<CargoResult<Option<RegistryConfig>>>
fn config(&mut self) -> Poll<CargoResult<Option<RegistryConfig>>>
config.json file and returns it. Read moreSource§fn block_until_ready(&mut self) -> CargoResult<()>
fn block_until_ready(&mut self) -> CargoResult<()>
Poll::Pending requests are Poll::Ready.Source§fn invalidate_cache(&mut self)
fn invalidate_cache(&mut self)
Source§fn set_quiet(&mut self, _quiet: bool)
fn set_quiet(&mut self, _quiet: bool)
Source§fn is_updated(&self) -> bool
fn is_updated(&self) -> bool
Source§fn download(&mut self, pkg: PackageId, checksum: &str) -> CargoResult<MaybeLock>
fn download(&mut self, pkg: PackageId, checksum: &str) -> CargoResult<MaybeLock>
.crate file. Read moreSource§fn finish_download(
&mut self,
_pkg: PackageId,
_checksum: &str,
_data: &[u8],
) -> CargoResult<File>
fn finish_download( &mut self, _pkg: PackageId, _checksum: &str, _data: &[u8], ) -> CargoResult<File>
.crate file to disk. Read moreSource§fn is_crate_downloaded(&self, _pkg: PackageId) -> bool
fn is_crate_downloaded(&self, _pkg: PackageId) -> bool
.crate file is already downloaded.Auto Trait Implementations§
impl<'gctx> Freeze for LocalRegistry<'gctx>
impl<'gctx> RefUnwindSafe for LocalRegistry<'gctx>
impl<'gctx> Send for LocalRegistry<'gctx>
impl<'gctx> Sync for LocalRegistry<'gctx>
impl<'gctx> Unpin for LocalRegistry<'gctx>
impl<'gctx> UnwindSafe for LocalRegistry<'gctx>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
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: 88 bytes