pub struct QueryDatabase<'a, Querier> { /* private fields */ }Expand description
Database to lookup queriers from their package names.
This type of database is designed for repository-unaware use cases such as:
- Local packages: Packages that have been installed into the system.
- Single repository archive.
- Merging multiple repository archives where duplications don’t exist.
Implementations§
Source§impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
Sourcepub fn extend<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertError>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn extend<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertError>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Extend the database with an iterator of immutable queriers of desc files.
Old queriers which occupied the same name as some of the new queriers would be replaced.
Sourcepub fn extend_mut<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertError>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn extend_mut<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertError>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Extend the database with an iterator of mutable queriers of desc files.
Old queriers which occupied the same name as some of the new queriers would be replaced.
Sourcepub fn extend_newer<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertNewerError<'_>>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn extend_newer<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertNewerError<'_>>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Extend the database with an iterator of immutable queriers of desc files that don’t share the same name
as an existing querier with a newer-or-equal package version.
Sourcepub fn extend_newer_mut<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertNewerError<'_>>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn extend_newer_mut<QuerierIter>(
&mut self,
queriers: QuerierIter,
) -> Result<(), InsertNewerError<'_>>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Extend the database with an iterator of mutable queriers of desc files that don’t share the same name
as an existing querier with a newer-or-equal package version.
Source§impl<Querier> QueryDatabase<'_, Querier>
impl<Querier> QueryDatabase<'_, Querier>
Source§impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
Sourcepub fn insert(
&mut self,
querier: Querier,
) -> Result<Option<Querier>, InsertError>where
Querier: Query<'a>,
pub fn insert(
&mut self,
querier: Querier,
) -> Result<Option<Querier>, InsertError>where
Querier: Query<'a>,
Add an immutable querier of a desc file to the database.
If an older querier already occupied the same name, it will be returned inside Ok(Some(_)).
Sourcepub fn insert_mut(
&mut self,
querier: Querier,
) -> Result<Option<Querier>, InsertError>where
Querier: QueryMut<'a>,
pub fn insert_mut(
&mut self,
querier: Querier,
) -> Result<Option<Querier>, InsertError>where
Querier: QueryMut<'a>,
Add a mutable querier of a desc file to the database.
If an older querier already occupied the same name, it will be returned inside Ok(Some(_)).
Source§impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
Sourcepub fn insert_newer(
&mut self,
querier: Querier,
) -> Result<InsertNewerReturn<Querier>, InsertNewerError<'a>>where
Querier: Query<'a>,
pub fn insert_newer(
&mut self,
querier: Querier,
) -> Result<InsertNewerReturn<Querier>, InsertNewerError<'a>>where
Querier: Query<'a>,
Add an immutable querier of a desc file to the database unless the entry was already occupied by a querier whose
package version is not older than the provided querier.
Sourcepub fn insert_newer_mut(
&mut self,
querier: Querier,
) -> Result<InsertNewerReturn<Querier>, InsertNewerError<'a>>where
Querier: QueryMut<'a>,
pub fn insert_newer_mut(
&mut self,
querier: Querier,
) -> Result<InsertNewerReturn<Querier>, InsertNewerError<'a>>where
Querier: QueryMut<'a>,
Add a mutable querier of a desc file to the database unless the entry was already occupied by a querier whose
package version is not older than the provided querier.
Source§impl<'a, Querier> QueryDatabase<'a, Querier>
impl<'a, Querier> QueryDatabase<'a, Querier>
Sourcepub fn entries(&self) -> Entries<'_, 'a, Querier> ⓘ
pub fn entries(&self) -> Entries<'_, 'a, Querier> ⓘ
Get an iterator over all pairs of package names and immutable queriers.
Sourcepub fn entries_mut(&mut self) -> EntriesMut<'_, 'a, Querier> ⓘ
pub fn entries_mut(&mut self) -> EntriesMut<'_, 'a, Querier> ⓘ
Get an iterator over all pairs of package names and mutable queriers.
Source§impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
impl<'a, Querier: ShouldReuse> QueryDatabase<'a, Querier>
Sourcepub fn from_queriers<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertError>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn from_queriers<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertError>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Construct a database with an iterator of immutable queriers of desc files.
If there are collisions between queriers in name, the later querier would override the earlier.
Sourcepub fn from_queriers_mut<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertError>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn from_queriers_mut<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertError>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Construct a database with an iterator of mutable queriers of desc files.
If there are collisions between queriers in name, the later querier would override the earlier.
Sourcepub fn from_newer_queriers<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertNewerError<'a>>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn from_newer_queriers<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertNewerError<'a>>where
Querier: Query<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Construct a database from an iterator of immutable queriers of desc files.
If there are collisions between queriers in name, the one with newer package version would override the older.
Sourcepub fn from_newer_queriers_mut<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertNewerError<'a>>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
pub fn from_newer_queriers_mut<QuerierIter>(
queriers: QuerierIter,
) -> Result<Self, InsertNewerError<'a>>where
Querier: QueryMut<'a>,
QuerierIter: IntoIterator<Item = Querier>,
Construct a database from an iterator of mutable queriers of desc files.
If there are collisions between queriers in name, the one with newer package version would override the older.
Source§impl<'a, Querier> QueryDatabase<'a, Querier>
impl<'a, Querier> QueryDatabase<'a, Querier>
Sourcepub fn names(&self) -> Names<'_, 'a, Querier> ⓘ
pub fn names(&self) -> Names<'_, 'a, Querier> ⓘ
Get an iterator over all package names.
Source§impl<'a, Querier> QueryDatabase<'a, Querier>
impl<'a, Querier> QueryDatabase<'a, Querier>
Sourcepub fn queriers(&self) -> Queriers<'_, 'a, Querier> ⓘ
pub fn queriers(&self) -> Queriers<'_, 'a, Querier> ⓘ
Get an iterator over all immutable queriers.
Sourcepub fn queriers_mut(&mut self) -> QueriersMut<'_, 'a, Querier> ⓘ
pub fn queriers_mut(&mut self) -> QueriersMut<'_, 'a, Querier> ⓘ
Get an iterator over all mutable queriers.
Source§impl<'a, Querier> QueryDatabase<'a, Querier>
impl<'a, Querier> QueryDatabase<'a, Querier>
Source§impl<Querier> QueryDatabase<'_, Querier>
impl<Querier> QueryDatabase<'_, Querier>
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Create an empty database with at least the specified capacity.
Source§impl<Querier> QueryDatabase<'_, Querier>
impl<Querier> QueryDatabase<'_, Querier>
Sourcepub fn alternative_providers<'a>(
&'a self,
target: DependencyName<'a>,
) -> AlternativeProviders<'a, 'a, Querier> ⓘ
pub fn alternative_providers<'a>( &'a self, target: DependencyName<'a>, ) -> AlternativeProviders<'a, 'a, Querier> ⓘ
Get an iterator over all immutable queriers of packages which list a certain DependencyName in their
provides array.
This method is prefixed with “alternative” because a package doesn’t usually list itself in its own provides,
and consequently, would usually be excluded from this iterator. Beware that if it does list itself, its own
name would be included.
Sourcepub fn alternative_providers_mut<'a>(
&'a mut self,
target: DependencyName<'a>,
) -> AlternativeProvidersMut<'a, 'a, Querier> ⓘ
pub fn alternative_providers_mut<'a>( &'a mut self, target: DependencyName<'a>, ) -> AlternativeProvidersMut<'a, 'a, Querier> ⓘ
Get an iterator over all mutable queriers of packages which list a certain DependencyName in their
provides array.
This method is prefixed with “alternative” because a package doesn’t usually list itself in its own provides,
and consequently, would usually be excluded from this iterator. Beware that if it does list itself, its own
name would be included.
Trait Implementations§
Source§impl<'a, Querier: Clone> Clone for QueryDatabase<'a, Querier>
impl<'a, Querier: Clone> Clone for QueryDatabase<'a, Querier>
Source§fn clone(&self) -> QueryDatabase<'a, Querier>
fn clone(&self) -> QueryDatabase<'a, Querier>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a, Querier: Debug> Debug for QueryDatabase<'a, Querier>
impl<'a, Querier: Debug> Debug for QueryDatabase<'a, Querier>
Source§impl<Querier> Default for QueryDatabase<'_, Querier>
impl<Querier> Default for QueryDatabase<'_, Querier>
Source§impl<'a, Querier> IntoIterator for QueryDatabase<'a, Querier>
impl<'a, Querier> IntoIterator for QueryDatabase<'a, Querier>
Auto Trait Implementations§
impl<'a, Querier> Freeze for QueryDatabase<'a, Querier>
impl<'a, Querier> RefUnwindSafe for QueryDatabase<'a, Querier>where
Querier: RefUnwindSafe,
impl<'a, Querier> Send for QueryDatabase<'a, Querier>where
Querier: Send,
impl<'a, Querier> Sync for QueryDatabase<'a, Querier>where
Querier: Sync,
impl<'a, Querier> Unpin for QueryDatabase<'a, Querier>where
Querier: Unpin,
impl<'a, Querier> UnwindSafe for QueryDatabase<'a, Querier>where
Querier: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Main> IntoAttached for Main
impl<Main> IntoAttached for Main
Source§fn into_attached<Attachment>(
self,
attachment: Attachment,
) -> Attached<Self, Attachment>
fn into_attached<Attachment>( self, attachment: Attachment, ) -> Attached<Self, Attachment>
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 moreSource§impl<T> Is for T
impl<T> Is for T
type Type = T
fn into_val(self) -> <T as Is>::Type
fn into_ref(&self) -> &<T as Is>::Type
fn into_mut_ref(&mut self) -> &mut <T as Is>::Type
fn from_val(x: <T as Is>::Type) -> T
fn from_ref(x: &<T as Is>::Type) -> &T
fn from_mut_ref(x: &mut <T as Is>::Type) -> &mut T
Source§impl<X> Pipe for X
impl<X> Pipe for X
Source§fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Returnwhere
Function: FnOnce(&'a Self) -> Return,
fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Returnwhere
Function: FnOnce(&'a Self) -> Return,
Source§fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Returnwhere
Function: FnOnce(&'a mut Self) -> Return,
fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Returnwhere
Function: FnOnce(&'a mut Self) -> Return,
Source§fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
f to &self where f takes a single parameter of type Param
and Self implements trait AsRef<Param>. Read moreSource§fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return
fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return
f to &mut self where f takes a single parameter of type Param
and Self implements trait AsMut<Param>. Read moreSource§fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
f to &self where f takes a single parameter of type Param
and Self implements trait Deref<Target = Param>. Read moreSource§fn pipe_deref_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function,
) -> Returnwhere
Self: DerefMut<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
fn pipe_deref_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function,
) -> Returnwhere
Self: DerefMut<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
f to &mut self where f takes a single parameter of type Param
and Self implements trait DerefMut<Target = Param>. Read moreSource§fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return
fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return
f to &self where f takes a single parameter of type Param
and Self implements trait Borrow<Param>. Read moreSource§fn pipe_borrow_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function,
) -> Return
fn pipe_borrow_mut<'a, Param, Return, Function>( &'a mut self, f: Function, ) -> Return
f to &mut self where f takes a single parameter of type Param
and Self implements trait BorrowMut<Param>. Read more