[go: up one dir, main page]

pub struct CachedIndex { /* private fields */ }
Available on crate feature git only.
Expand description

Provides an efficient way to check if the given package has been yanked.

Operations on crates.io index are rather slow. Instead of peforming an index lookup for every version of every crate, this implementation looks up each crate only once and caches the result in memory.

Please note that this struct will hold a global Cargo package lock while it exists. Cargo operations that download crates (e.g. cargo update or even cargo build) will not be possible while this lock is held.

Implementations§

source§

impl CachedIndex

source

pub fn fetch( client: Option<ClientBuilder>, lock_timeout: Duration ) -> Result<Self, Error>

Open the local crates.io index

If this opens a git index, it will perform a fetch to get the latest index information.

If this is a sparse index, it will be downloaded later on demand.

Locking

This function will wait for up to lock_timeout for the filesystem lock on the repository. It will fail with rustsec::Error::LockTimeout if the lock is still held after that time.

If lock_timeout is set to std::time::Duration::from_secs(0), it will not wait at all, and instead return an error immediately if it fails to aquire the lock.

source

pub fn open(lock_timeout: Duration) -> Result<Self, Error>

Open the local crates.io index

If this opens a git index, it allows reading of index entries from the repository.

If this is a sparse index, it only allows reading of index entries that are already cached locally.

Locking

This function will wait for up to lock_timeout for the filesystem lock on the repository. It will fail with rustsec::Error::LockTimeout if the lock is still held after that time.

If lock_timeout is set to std::time::Duration::from_secs(0), it will not wait at all, and instead return an error immediately if it fails to aquire the lock.

source

pub fn find_yanked<'a, I>( &mut self, packages: I ) -> Vec<Result<&'a Package, Error>>
where I: IntoIterator<Item = &'a Package>,

Iterate over the provided packages, returning a vector of the packages which have been yanked.

This function should be called with many packages at once rather than one by one; that way it can download the status of a large number of packages at once from the sparse index very quickly, orders of magnitude faster than requesting packages one by one.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more